【问题标题】:How to put placeholder in Django date range filter如何在 Django 日期范围过滤器中放置占位符
【发布时间】:2016-03-31 09:12:50
【问题描述】:

我正在使用 Django 过滤器通过在我的应用程序中提供日期范围进行搜索。

class AdvancedSearchListFilter(django_filters.FilterSet):
    received = django_filters.DateFromToRangeFilter(label='Received Date Range')

    class Meta:
        model = Container
        fields = ['received']

那么这个过滤器将创建我正在搜索到和从日期范围的位置。所以我想放置一个占位符来显示日期格式,如“yyyy/mm/dd”。 我怎样才能做到这一点?

【问题讨论】:

    标签: python django date


    【解决方案1】:

    您可以像使用普通 django 表单一样分配占位符

    class AdvancedSearchInboxFilter(django_filters.FilterSet):
        received = django_filters.DateFromToRangeFilter(
            label='Received Date Range',
            widget=django_filters.widgets.RangeWidget(attrs={'placeholder': 'yyyy/mm/dd'}))
    
        class Meta:
            model = File
            fields = ['received']
    

    【讨论】:

    • 我已经按照你的建议尝试了。它显示了一个错误:AttributeError: 'AdvancedSearchInboxFilter' object has no attribute 'fields'。
    • 再次抛出错误:AttributeError: 'module' object has no attribute 'DateInput' 我只做了 import :from django.forms import forms,我使用的是 Django 最新的 1.9 版本,python 3.4
    • 只导入from django import forms
    • 嘿,它的工作原理,但是当我使用 DateFromToRangeFilter 时,之前我显示了两个搜索框用于 To 和 From 功能。现在只有一个搜索框带有占位符。
    • 尝试使用django_filters.widgets.RangeWidget() 而不是forms.DateInput()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 2020-03-05
    • 2017-06-26
    • 1970-01-01
    • 2019-03-10
    • 2015-04-10
    • 2016-06-11
    相关资源
    最近更新 更多