【问题标题】:Django date form field can't accept |date:"SHORT_DATE_FORMAT" filterDjango 日期表单字段不能接受 |date:"SHORT_DATE_FORMAT" 过滤器
【发布时间】:2015-04-04 12:00:05
【问题描述】:

循环遍历 ModelForm 的表单字段时,我可以将 date 过滤器应用于 models.DateField() 就好了,即

{{field.value|date:"SHORT_DATE_FORMAT"}}

但是当循环使用forms.DateField 的非模型表单时,数据似乎已经是字符串格式,并且在我应用过滤器时返回一个空字符串。但是,当我 print type(form.cleaned_data['date']) 时,它会显示为日期时间。 is_valid() 是否正在修改表单,或者关于如何应用过滤器的任何想法?

【问题讨论】:

  • 您想打印一个具有特定格式的初始值(SHORT_DATE_FORMAT),还是想在 POST 无效时重新格式化用户的输入?以及您必须手动呈现表单而不是 {{form}} 的任何原因?

标签: python django forms django-templates


【解决方案1】:

我刚刚遇到了同样的问题。我取回的 Json 数据将数据作为字符串而不是数据对象。所以日期格式模板标签不会重新调整它。

the documentation says:

如果 value 是一个日期时间对象(例如 datetime.datetime.now() 的结果),则输出将是字符串 'Wed 09 Jan 2008'。

所以看起来我们需要将字符串转换为好看的日期或将字符串转换为日期时间对象,以便标签将其转换。

我将更新最不痛苦的接缝。

【讨论】:

    猜你喜欢
    • 2010-12-15
    • 2012-05-04
    • 2022-10-31
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 2011-09-03
    相关资源
    最近更新 更多