我正在尝试允许更灵活的日期输入到我的应用程序中,并希望使用默认的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
中扩展默认设置的正确方法是什么?
答案 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
)