如何在管理表单的 DateField 中接受本地化的日期格式(例如 dd/mm/yy)?

tom*_*rry 4 python django django-admin

是否可以自定义 django 应用程序以在管理表单的 DateField 中接受本地化的日期格式(例如 dd/mm/yy)?

我有一个模型类:

class MyModel(models.Model):    
    date  = models.DateField("Date")    
Run Code Online (Sandbox Code Playgroud)

和相关的管理类

class MyModelAdmin(admin.ModelAdmin):
     pass
Run Code Online (Sandbox Code Playgroud)

在 django 管理界面上,我希望能够以以下格式输入日期:dd/mm/yyyy。但是,管理表单中的日期字段需要 yyyy-mm-dd。

我怎样才能定制东西?注意:我已经在 settings.py 中指定了我的自定义语言代码 (fr-FR),但它似乎对这个日期输入问题没有影响。

预先感谢您的回答

Ben*_*mes 5

管理系统使用默认值ModelForm来编辑对象。您需要提供一个自定义表单,以便您可以开始覆盖字段行为。

在您的模型表单中DateField,使用 a 覆盖该字段,并使用input_formats选项。

MY_DATE_FORMATS = ['%d/%m/%Y',]

class MyModelForm(forms.ModelForm):
    date = forms.DateField(input_formats=MY_DATE_FORMATS)
    class Meta:
        model = MyModel

class MyModelAdmin(admin.ModelAdmin):
    form = MyModelForm
Run Code Online (Sandbox Code Playgroud)