扩展Django设置中的现有列表

时间:2011-05-06 19:36:52

标签: django

我正在尝试允许更灵活的日期输入到我的应用程序中,并希望使用默认的Django设置。根据文档,我可以在DATE_INPUT_FORMATS中定义settings.py,但我想保留默认值并添加其他一些。

我试着将它扩展,好像已经存在的那样悲惨地失败了:

DATE_INPUT_FORMATS += ['%m-%d-%y',]

收益率:NameError: name 'DATE_INPUT_FORMATS' is not defined

我也尝试从django.conf导入默认设置,但这是循环的,因为它试图包含我正在加载它的settings.py

from django.conf import settings as default_settings
DATE_INPUT_FORMATS = default_settings.DATE_INPUT_FORMATS
DATE_INPUT_FORMATS += ['%m-%d-%y',]

收率:

Error: Can't find the file 'settings.py' in the directory containing './manage.py'. It appears you've customized things.
You'll have to run django-admin.py, passing it your settings module.
(If the file settings.py does indeed exist, it's causing an ImportError somehow.)

在Django的settings.py中扩展默认设置的正确方法是什么?

2 个答案:

答案 0 :(得分:7)

您应该可以导入表单django.conf.global_settings

答案 1 :(得分:0)

这有点令人讨厌,但重新定义事物并附加自己的内容要简单得多。此外,就可维护性而言,更明智地使用您的设置。

django source code for django.conf.global_settings.py中查找默认值。

DATE_INPUT_FORMATS = (
    '%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
    '%b %d %Y', '%b %d, %Y',            # 'Oct 25 2006', 'Oct 25, 2006'
    '%d %b %Y', '%d %b, %Y',            # '25 Oct 2006', '25 Oct, 2006'
    '%B %d %Y', '%B %d, %Y',            # 'October 25 2006', 'October 25, 2006'
    '%d %B %Y', '%d %B, %Y',            # '25 October 2006', '25 October, 2006'

        '%m-%d-%y'        # <-- Yours
)