Django 1.2管理员 - 日期时间小部件无法正常工作?

时间:2010-06-21 07:02:38

标签: django django-admin virtualenv

如果您在admin中有一个日期时间字段,并且您调用了“今天”链接,则它似乎从calendar.js引发异常,它引用了未定义的全局方法get_format。这似乎没有在任何最新的admin js文件中定义。

编辑:

似乎它在我的标准django 1.1上使用了与系统不同的i18n.py文件。这是我的wsgi文件:

import os, sys, site

site.addsitedir( '/srv/python-environments/django1point2/lib/python2.5/site-packages')

sys.path.append('/srv/')
sys.path.append('/srv/workarounds')

os.environ['DJANGO_SETTINGS_MODULE'] = 'workarounds.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

我需要改变什么,所以它依赖于我指定的addsitedir字符串中的i18n.py而不是我的系统默认值?

2 个答案:

答案 0 :(得分:2)

在正常情况下,管理工具小部件肯定确实工作(我在Django trunk,1.2和1.2.1下使用它)。问题是“你的情况有什么不同?”

为了记录,您正在寻找的功能is defined here

我的第一个想法是,您可能修改了管理模板,但未包含相应的脚本。第二个想法可能是你在某个地方有一个旧文件的缓存版本。

v1.2中的javascript i18n框架和本地化机制发生了很多变化,因此最好从你正在使用的设置开始。

总而言之,您需要提供更多信息才能获得有用的答案。

答案 1 :(得分:2)

您的.wsgi代码将virtualenv site-packages放在系统site-packages之后,因此全局包将优先考虑。我使用以下代码段(我推荐的mod_wsgi documentation on use with virtualenv)来首先放置virtualenv site-packages:

ALLDIRS = [os.path.join(virtenv, 'lib',
                                 'python%s' % sys.version[:3],
                                 'site-packages')]

# Remember original sys.path.
prev_sys_path = list(sys.path)

# Add project directory
sys.path.append(project)

# Add each new site-packages directory.
for directory in ALLDIRS:
  site.addsitedir(directory)

# Reorder sys.path so new directories at the front.
new_sys_path = []
for item in list(sys.path):
    if item not in prev_sys_path:
        new_sys_path.append(item)
        sys.path.remove(item)
sys.path[:0] = new_sys_path