我试图部署一个django网站。它似乎工作正常,但是在管理站点中,看起来POST不起作用来更新用户帐户。在管理控制台更新用户页面时,django管理页面不会发布
错误响应位于:http://dpaste.com/0CKD2CS
我的问题在这里,如果是Django的管理运行正常,为什么一个网站无法找到一个在岗位设置的页面?
谢谢。
我试图部署一个django网站。它似乎工作正常,但是在管理站点中,看起来POST不起作用来更新用户帐户。在管理控制台更新用户页面时,django管理页面不会发布
错误响应位于:http://dpaste.com/0CKD2CS
我的问题在这里,如果是Django的管理运行正常,为什么一个网站无法找到一个在岗位设置的页面?
谢谢。
在这种情况下,FileNotFoundError
实际上源于尝试读取“格式文件”,Django使用该格式文件来确定日期,时间和货币显示等特定于区域设置的格式。在这种情况下,它的DATE_INPUT_FORMATS
为DateField
。
Django的允许的设置中指定为格式的路径:
https://docs.djangoproject.com/en/1.8/ref/settings/#format-module-path
否则有许多的这些在Django的分布区域设置的目录配置 - .../lib/python2.7/site-packages/django/conf/locale
。例如:
../lib/python2.7/site-packages/django/conf/locale/en_AU/formats.py
19:DATE_INPUT_FORMATS = (
20- '%d/%m/%Y', '%d/%m/%y', # '25/10/2006', '25/10/06'
21- # '%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006'
22- # '%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006'
23- # '%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006'
24- # '%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006'
25-)
值得检查有效的语言环境和相关文件。如果您可以禁用翻译机器,或者至少在故障排除期间,您可以在settings
中设置USE_I18N=False
。
可能值得仔细阅读Django Internationalization and Localization文档。
如果没有特定于国家/地区的格式模块,Django将使用en
,这样就可以。您可以尝试使用Django的壳在项目中尝试等价的调用:
$ ./manage.py shell
>>> import datetime
>>> datetime.datetime.strptime('2015-10-19', '%Y-%m-%d').date()
datetime.date(2015, 10, 19)
唯一的地方有Django的相关文件I/O格式为模块的加载所以只要django/conf/locale/en/formats.py
可用那么这种失败的可能性是有限的,失败了一些奇怪的事情发生在datetime
,这似乎不大可能。没有为在Django的格式将检索settings
回退,所以你可以这一行添加到您的settings
:
DATE_INPUT_FORMATS = ('%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y')
这是我之前没有检查Django的功能集的有趣的部分。首先,我试图用建议的USE_I18N = False更新settings.py,但是,我仍然看到错误。我还能去哪里看? – arcee123
这很不幸。目前的语言环境是什么?也许你可以检查匹配模块文件的'/ root/.virtualenvs/ifthq/lib/python3.4/site-packages/django/conf/locale'子目录,看看这些格式是如何定义的(或不是)。 –
另外,考虑到这一点,在这种情况下,'USE_L10N'设置可能更相关,因为它已经归结为日期格式 - https://docs.djangoproject.com/en/1.8/ref/settings/#std:设置 - USE_L10N –