我試圖部署一個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 –