django 日期输入格式未正确解释
django date input format is not interpreted properly
我正在尝试使用包含 DateField/Input.
的 django 设置模型和相应的 ModelForm
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 日。我还需要做什么才能正确解释日期?
仅在你的widget的表单中指定格式只是作为显示,你仍然需要通过它来指定字段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.py
中的 DATE_INPUT_FORMAT
变量中添加格式。有关更多信息,请参阅 https://docs.djangoproject.com/en/4.0/ref/settings/#date-input-formats
我正在尝试使用包含 DateField/Input.
的 django 设置模型和相应的 ModelFormfrom 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 日。我还需要做什么才能正确解释日期?
仅在你的widget的表单中指定格式只是作为显示,你仍然需要通过它来指定字段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.py
中的 DATE_INPUT_FORMAT
变量中添加格式。有关更多信息,请参阅 https://docs.djangoproject.com/en/4.0/ref/settings/#date-input-formats