Django 更新表单:不符合要求的格式,"yyyy-MM-dd"



我在后端使用Django来保存用户输入的日期。然后,我想允许用户更新日期输入,方法是将他们带到一个新页面,向他们显示旧的日期输入,并允许他们更新它。

我在前端使用一个日期拾取器输入字段,方便用户选择日期。

在我输入日期后,我去更新页面更改它,更新页面上的日期选择器输入字段每次都是空的。

在控制台上我看到

The specified value "Jul. 4, 1776" does not conform to the required format, "yyyy-MM-dd".

我认为问题在于,当我从数据库中检索日期时,它会以不同的格式进入,而不是预期的格式。日期来自后端,格式为1776年7月4日,前端表单需要在177607-04。

我想知道我怎么能解决这个问题,所以前端和后端都很高兴,用户输入的旧日期显示在更新页面日期拾取器输入字段

settings.py中的DATE_FORMAT没有为我解决问题

日期以'yyyy-mm-dd'格式存储在数据库中,为了避免此Javascript错误消息,我必须在表单定义format='%Y-%m-%d'中指定相同的格式。forms.SelectDateWidget()工作良好,但我不想使用它。

class MyForm(forms.ModelForm):

class Meta:
model = MyModel
fields = ['id', 'title', 'summary_img', 'summary_txt', 'msg_nextdate']
widgets = {
'summary_txt': forms.Textarea(attrs={'rows':6}),
'msg_nextdate': forms.DateInput(attrs={'type': 'date'}, format='%Y-%m-%d'),
# 'msg_nextdate': forms.SelectDateWidget()
}

如果在settings.py中设置了USE_I18N = True日期显示web导航取决于计算机的区域设置。

  • 美国/英国格式为mm/dd/yyyy
  • FR/BE格式的dd/mm/yyyy

你可以试试:

添加到你的settings.py:

DATE_FORMAT = 'YYYY-MM-DD'

{{my_date|date:'Y-m-d'}}

把这个放到settings.py似乎解决了这个问题

DATE_FORMAT = 'Y-m-d'

相关内容

最新更新