查找旧项目的 Django 版本号

1 投票
2 回答
540 浏览
提问于 2025-04-18 10:55

我正在开始一个项目,这个项目是两年前有人开始的,但我不知道它用的是哪个版本的django。做这个项目的人也不知道,我也不确定随便猜猜能不能行,因为我根本不知道这个项目能不能正常运行。我找到了一些资料,里面提到这个版本可能是1.0之前的,但我不知道接下来该怎么做。除了猜测和试错,还有什么好的方法可以知道具体版本吗?

我的settings.py文件是

import os
PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
    # ('Your Name', 'your_email@domain.com'),
)

MANAGERS = ADMINS

DATABASE_ENGINE = 'sqlite3'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = os.path.join(PROJECT_PATH, 'site.db') # Or path to database file if using sqlite3.
DATABASE_USER = ''             # Not used with sqlite3.
DATABASE_PASSWORD = ''         # Not used with sqlite3.
DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.

# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'America/Chicago'

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us'

SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True

# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"
MEDIA_ROOT = ''

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com", "http://example.com/media/"
MEDIA_URL = ''

# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
# trailing slash.
# Examples: "http://foo.com/media/", "/media/".
ADMIN_MEDIA_PREFIX = '/media/admin/'

# Make this unique, and don't share it with anybody.
SECRET_KEY = some gibberish

# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.load_template_source',
    'django.template.loaders.app_directories.load_template_source',
#     'django.template.loaders.eggs.load_template_source',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
)

#ROOT_URLCONF = 'site.urls'
ROOT_URLCONF = 'project.urls'

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'project.site',
)

#TD_SERVER_PORT = 'tcp:8080:interface=192.168.1.43'
#TD_BIN_DIR = '/Users/me/django/project/bin'
TD_WORK_DIR = '/Users/me/td_work'
TD_COMPACT_MODE = False
TD_MAX_UPLOAD_RATE = 20 * 1024
TD_MAX_DOWNLOAD_RATE = 80 * 1024
#TD_LISTEN_PORT_MIN = 59543
#TD_LISTEN_PORT_MAX = 59553
TD_LISTEN_PORT_MIN = 6881
TD_LISTEN_PORT_MAX = 6891

# Icecast stream upload settings.
TD_STREAM_NAME = '[o_o] site.net'
TD_STREAM_PORT = 8000
#TD_STREAM_HOST = 'thingie.com'
#TD_STREAM_PASSWORD = 'poiuyt'
TD_STREAM_HOST = 'localhost'
TD_STREAM_PASSWORD = 'qwerty'
#TD_STREAM_HOST = 'otherthingie.com'
#TD_STREAM_PASSWORD = 'wopwopwop'

# CD Ripper
TD_CD_DIR = '/home/me/td_work/cds'

我的manage.py文件是

#!/usr/bin/env python
from django.core.management import execute_manager
try:
    import settings # Assumed to be in the same directory.
except ImportError:
    import sys
    sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
    sys.exit(1)

if __name__ == "__main__":
    execute_manager(settings)

我的urls.py文件是

from django.conf.urls.defaults import *
from project.site.models import Syndicator, Torrent

torrent = {
    'queryset': Torrent.objects.all(),
    'extra_context': {'syndicators': Syndicator.objects.all()},
}

torrents = {
    'queryset': Torrent.objects.all().order_by('-pub_date'),
    'paginate_by': 25,
    'allow_empty': True,
    'extra_context': {'syndicators': Syndicator.objects.all()},
}

urlpatterns = patterns('',
    (r'^$', 'django.views.generic.list_detail.object_list', torrents, 'home-page'),

    (r'^feeds/$', 'django.views.generic.list_detail.object_list', torrents, 'feed-list'),
    (r'^feeds/page(?P<page>[0-9]+)/$', 'django.views.generic.list_detail.object_list', torrents, 'feed-list-page'),
    (r'^feeds/post/(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', torrent, 'feed-post'),
    (and a lot more patterns),
)

2 个回答

0

我不太确定这是否重要。数据库的设置暗示是1.2之前的版本,所以1.1应该没问题。Django很少会破坏之前版本的兼容性(那个数据库的情况是个例外),所以小版本之间的差异一般不会有太大影响。

3

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们写的代码有bug,或者是因为我们没有正确理解某些概念。

当我们在网上寻找解决方案时,像StackOverflow这样的网站就非常有用。在这些网站上,很多程序员会分享他们的经验和解决方案,帮助其他人解决类似的问题。

如果你看到一个代码块,比如

(virtualenv)~$ python

>>> import django
>>> print django.get_version()
'1.4.1'
,这通常是一个示例代码,展示了某种用法或解决方案。你可以参考这些代码,看看它们是如何工作的,或者在你的项目中尝试使用它们。

总之,编程是一项需要不断学习和实践的技能,遇到问题时不要气馁,利用好网络资源,向其他人请教,慢慢你就会变得更加熟练。

撰写回答