【问题标题】:Django DateTimeField can't validate ISO 8601 formatDjango DateTimeField 无法验证 ISO 8601 格式
【发布时间】:2018-02-09 15:43:29
【问题描述】:

Django DateTimeField 无法验证 ISO 8601 格式

forms.py

from django import forms

class ImageForm(forms.Form):
    updatedAfter = forms.DateTimeField()
    createdAfter = forms.DateTimeField()

views.py

class ImageView(View)
    def get_form(self):
        return ImageForm(data=self.request.GET or None)
    def get(self, request, *args, **kwargs):
        form = self.get_form()
        if form.is_valid():
              ...

这是我的要求:

http://127.0.0.1:8001/images/?updatedAfter=2011-10-05T14:48:00.000Z&createdAfter=2011-10-05T14:48:00.000Z

【问题讨论】:

  • 你试过没有毫秒吗?
  • @schwobaseggl 不,因为我必须支持 ISO 8601,可以是毫秒

标签: python django


【解决方案1】:

尝试编辑以下设置,它对我有用:

settings.py

USE_L10N = False

DATETIME_INPUT_FORMATS = ('%Y-%m-%dT%H:%M:%S.%fZ',)

【讨论】:

  • 这应该被编辑以保留默认值或提及它删除默认值。
  • 是的,这可能会影响您项目的其余部分,因为它是一个全局设置。这种格式也可以应用于单个表单字段。
猜你喜欢
  • 2018-06-26
  • 1970-01-01
  • 2017-02-01
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-11
相关资源
最近更新 更多