查找旧项目的 django 版本号
Posted
技术标签:
【中文标题】查找旧项目的 django 版本号【英文标题】:Finding django version number for an old project 【发布时间】:2014-08-15 00:39:34 【问题描述】:我正在开始一个 2 年前有人开始的项目,但我无法弄清楚它运行的 django 版本。制作该项目的人不知道,我不确定猜测和检查是否有效,因为我实际上并不知道该项目是否可以编译。我找到了this 的答案,但它表明该版本是 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),
)
【问题讨论】:
这需要更多信息。显示您的settings.py
、manage.py
和urls.py
。
看看模型。模型是否在内部定义 Admin
类?
像DATABASE_NAME
这样的约定在 Django 1.4 中被删除了,所以让我们关注 od 1.3 及更低版本。有admin.py
文件吗? urls.py
文件中定义的 admin.site.urls
模式是什么?
@pancakes 是的,
没有admin.py,并且字符串'admin'在urls.py文件中没有出现
【参考方案1】:
(virtualenv)~$ python
>>> import django
>>> print django.get_version()
'1.4.1'
【讨论】:
这告诉我我的机器运行的是什么版本,而不是项目的版本。 嗯,没有简单的答案。我建议您查看(django 和项目)配置文件 - 在 django 开发过程中发生了很多变化。显示为示例 url、数据库声明等。【参考方案2】:我不确定这是否重要。数据库设置暗示 pre-1.2,所以 1.1 应该可以正常工作。 Django 很少破坏向后兼容性(该数据库是一个罕见的例外),因此点版本之间的差异应该不会有太大影响。
【讨论】:
以上是关于查找旧项目的 django 版本号的主要内容,如果未能解决你的问题,请参考以下文章