django日期输入格式没有被正确解释



我试图设置一个模型和相应的ModelForm与django包含一个DateField/Input。

from django.db import models
class MyModel(models.Model):
myDate = models.DateField()
from django import forms
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
fields = "__all__"
widgets = {
'myDate': forms.DateInput(format=("%d/%m/%Y")) 
}

但遗憾的是,当我在MyModelForm输出的表单中输入日期时,日期和月份被交换了。例如,1/2/22的结果是2022年1月2日,而不是2022年2月1日。我还需要做些什么,才能正确地解释日期?

仅在小部件的表单中指定格式只是用作显示,您仍然需要传递它来指定字段myDate作为表单中的DateField:

from django.db import models
class MyModel(models.Model):
myDate = models.DateField()
from django import forms
class MyModelForm(forms.ModelForm):
myDate = forms.DateField(input_formats=["%d/%m/%Y"])
class Meta:
model = MyModel
fields = "__all__"
widgets = {
'myDate': forms.DateInput(format=("%d/%m/%Y")) 
}

设置这个的另一个选项是在settings.pyDATE_INPUT_FORMAT变量中添加格式。详见https://docs.djangoproject.com/en/4.0/ref/settings/#date-input-formats

最新更新