【问题标题】:Can I change datetime-local format for django-filters?我可以更改 django-filters 的 datetime-local 格式吗?
【发布时间】:2020-10-27 22:19:45
【问题描述】:

我正在使用 django-filters 作为日期时间过滤器。

当我尝试使用 datetime-local 时,我的表单会像这样发送日期时间查询:

2020-07-07T18:39

但我的 django-filter 接受这样的格式:

2020-07-07 18:39

这是我用于 django-filter 的 django 函数:

def paketdok(request):
    siparis_list = Siparisler.objects.filter(paketlenme_tarihi__isnull=False)
    siparis_filter = PaketFilter(request.GET, queryset=siparis_list)
    return render(request, 'paketlenmis_arama.html', {'filter': siparis_filter})

我的PaketFilter:

paketlenme_tarihi = django_filters.DateTimeFromToRangeFilter(widget=django_filters.widgets.RangeWidget(attrs={'type':'datetime-local'}))

我可以以某种方式更改本地日期时间输入字段的格式吗?

【问题讨论】:

  • 请同时显示PaketFilter 的定义。
  • 我已经添加了

标签: javascript python html django


【解决方案1】:

您无法更改 datetime-local 所做的事情 - 出于理智考虑,它始终会输出 ISO8601 日期时间。

不过,令人高兴的是,django-filter 附带了IsoDateTimeFilter / IsoDateTimeField,它们接受 ISO8601 日期时间。

您应该能够切换到该过滤器或字段。

【讨论】:

  • 当我将过滤器更改为 IsoDateTimeFilter 时出现此错误:/paketlenmisler/arama/ 'list' 对象的 AttributeError 没有属性 'strip'
  • 如果您的原件是DateTimeFromToRangeFilter,您自然需要使用IsoDateTimeFromToRangeFilter :)
  • 检查了文档并使用了 IsoDateTimeFromToRangeFilter。现在它正在工作。谢谢
猜你喜欢
  • 1970-01-01
  • 2020-11-15
  • 2018-01-14
  • 2020-02-08
  • 1970-01-01
  • 2016-12-23
  • 2015-06-27
  • 2012-03-26
  • 1970-01-01
相关资源
最近更新 更多