Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django 1.2:管理表单中的日期不适用于区域设置(I10N=True)_Python_Django_Date_Django Admin - Fatal编程技术网

Python Django 1.2:管理表单中的日期不适用于区域设置(I10N=True)

Python Django 1.2:管理表单中的日期不适用于区域设置(I10N=True),python,django,date,django-admin,Python,Django,Date,Django Admin,我在Django 1.2中有一个应用程序。 语言可选择I18N,语言环境=True 当我在网站中选择英语语言时,管理员工作正常。但当我换成其他语言时,日期输入就是这样的,例如: 正确地说,输入接受西班牙语格式%d/%m/%Y,即使从日历中选择日期,也会按预期插入。但是,当我保存表单并再次加载它时,日期以英文形式显示:%Y-%m-%d 真正的问题是,当我加载表单以更改任何其他文本字段并尝试保存它时,我会收到一个错误,告诉我输入有效日期,因此我必须再次写入所有日期或更改网站中的语言以使用管理员 我没

我在Django 1.2中有一个应用程序。 语言可选择I18N,语言环境=True

当我在网站中选择英语语言时,管理员工作正常。但当我换成其他语言时,日期输入就是这样的,例如:

正确地说,输入接受西班牙语格式%d/%m/%Y,即使从日历中选择日期,也会按预期插入。但是,当我保存表单并再次加载它时,日期以英文形式显示:%Y-%m-%d

真正的问题是,当我加载表单以更改任何其他文本字段并尝试保存它时,我会收到一个错误,告诉我输入有效日期,因此我必须再次写入所有日期或更改网站中的语言以使用管理员

我没有在设置中为日期\输入\格式指定任何内容,也没有覆盖表单或模型


我肯定错过了什么,但我找不到。有人能给我一个提示吗?

将此添加到您的设置中可以解决您称之为真正问题的部分:

DATE_INPUT_FORMATS = (   
    '%d/%m/%Y', '%d/%m/%y',     # '25/10/2006', '25/10/06'
    '%Y-%m-%d', '%y-%m-%d',     # '2006-10-25', '06-10-25'
)

DATETIME_INPUT_FORMATS = (
    '%d/%m/%Y %H:%M:%S',    # '25/10/2006 14:30:59'
    '%d/%m/%Y %H:%M',       # '25/10/2006 14:30'
    '%d/%m/%y %H:%M:%S',    # '25/10/06 14:30:59'
    '%d/%m/%y %H:%M',       # '25/10/06 14:30'
    '%Y-%m-%d %H:%M:%S',    # '2006-10-25 14:30:59'
    '%Y-%m-%d %H:%M',       # '2006-10-25 14:30'
    '%Y-%m-%d',             # '2006-10-25'
)
但这是Django的问题。我打开了,但您应该发表评论,因为您的示例显示,这是一个比我认为更严重的问题,因为事实证明,并非所有本地化都同时接受通用和本地化的日期输入格式

更新:我忘了补充一点,您可以将localize=True传递给日期小部件,然后它们应该总是以本地化格式显示日期。有一些例子说明了如何在中执行此操作


我刚刚将这个问题发布到django开发者邮件列表。

谢谢Ludwik,我已经关注了您的链接,现在我对这个问题有了更好的理解。你帮我省了很多时间去寻找我自己的错误。我已将格式添加到设置中,但仍收到验证错误。也许我遗漏了什么,但我要到星期一才能查清楚。届时我会再作评论。谢谢。有一个补丁声称可以解决这个问题:你可以尝试应用它,然后在bug中发表评论,说明它是否适合你。这将有助于开发过程。顺便说一句,如果你觉得我的答案有帮助,你可以投票赞成,甚至接受。作为一种解决办法,如果你只是通过翻译运行日期格式,会发生什么?例如:日期\格式=\ m-d-Y'?这真的有效吗?日期输入格式不起任何作用,即使我在保存时只允许“%Y-%m-%d”和“%Y-%m-%d”,它也希望区域设置版本和验证失败。无法确认13621号罚单的补丁,因为我让所有的帅哥都失败了,我不知道出了什么问题,我以前从未应用过补丁。