Python Django 1.2:管理表单中的日期不适用于区域设置(I10N=True)
我在Django 1.2中有一个应用程序。 语言可选择I18N,语言环境=True 当我在网站中选择英语语言时,管理员工作正常。但当我换成其他语言时,日期输入就是这样的,例如: 正确地说,输入接受西班牙语格式%d/%m/%Y,即使从日历中选择日期,也会按预期插入。但是,当我保存表单并再次加载它时,日期以英文形式显示:%Y-%m-%d 真正的问题是,当我加载表单以更改任何其他文本字段并尝试保存它时,我会收到一个错误,告诉我输入有效日期,因此我必须再次写入所有日期或更改网站中的语言以使用管理员 我没有在设置中为日期\输入\格式指定任何内容,也没有覆盖表单或模型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 真正的问题是,当我加载表单以更改任何其他文本字段并尝试保存它时,我会收到一个错误,告诉我输入有效日期,因此我必须再次写入所有日期或更改网站中的语言以使用管理员 我没
我肯定错过了什么,但我找不到。有人能给我一个提示吗?将此添加到您的设置中可以解决您称之为真正问题的部分:
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号罚单的补丁,因为我让所有的帅哥都失败了,我不知道出了什么问题,我以前从未应用过补丁。