查找旧项目的 Django 版本号
我正在开始一个项目,这个项目是两年前有人开始的,但我不知道它用的是哪个版本的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'
,这通常是一个示例代码,展示了某种用法或解决方案。你可以参考这些代码,看看它们是如何工作的,或者在你的项目中尝试使用它们。
总之,编程是一项需要不断学习和实践的技能,遇到问题时不要气馁,利用好网络资源,向其他人请教,慢慢你就会变得更加熟练。