如何在管理表单的日期字段中接受本地化日期格式(例如 dd/mm/yy)?
是否可以自定义 django 应用程序以在管理表单的 DateField 中接受本地化日期格式(例如 dd/mm/yy)?
我有一个模型类:
class MyModel(models.Model):
date = models.DateField("Date")
以及关联的管理类
class MyModelAdmin(admin.ModelAdmin):
pass
在 django 管理界面上,我希望能够以以下格式输入日期:dd/mm/yyyy。但是,管理表单中的日期字段需要 yyyy-mm-dd。
我怎样才能定制东西?注意:我已经在settings.py中指定了我的自定义语言代码(fr-FR),但它似乎对此日期输入问题没有影响。
预先感谢您的回答
Is it possible to customize a django application to have accept localized date format (e.g dd/mm/yy) in a DateField on an admin form ?
I have a model class :
class MyModel(models.Model):
date = models.DateField("Date")
And associated admin class
class MyModelAdmin(admin.ModelAdmin):
pass
On django administration interface, I would like to be able to input a date in following format : dd/mm/yyyy. However, the date field in the admin form expects yyyy-mm-dd.
How can I customize things ? Nota bene : I have already specified my custom language code (fr-FR) in settings.py, but it seems to have no effect on this date input matter.
Thanks in advance for your answer
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
管理系统使用默认的
ModelForm
来编辑对象。您需要提供自定义表单,以便可以开始覆盖字段行为。在模型表单中,使用
DateField
覆盖字段,并使用 input_formats 选项。The admin system uses a default
ModelForm
for editing the objects. You'll need to provide a custom form so that you can begin overriding field behaviour.Inside your modelform, override the field using a
DateField
, and use the input_formats option.Ben 提出的修复正在起作用,但右侧的日历不再显示。
这是一个改进。日历仍会显示,并且日期将以 %d%%M/%Y 格式显示。
单击日历中的某一天时,该字段的值具有 %Y-%m-%d 格式,但被接受为有效日期格式。
PS:感谢 Daniel Roseman 对这个问题的回答
The fix proposed by Ben is working but the calendar on the right is not shown anymore.
Here is an improvement. The calendar will still be shown and the date will be displayed with the %d%%M/%Y format.
When clicking on a day in the calendar, the value of the field has the %Y-%m-%d format but is is accepted as a valid date format.
PS: Thanks to Daniel Roseman for his answer to this question