我想弄清楚如何将 datepicker 与 django-filter 一起使用。我尝试了一堆小部件,但它不起作用。任何建议将不胜感激!
我想将 datepicker 用于 row_date 搜索过滤器。filters.py
from home2.models import AvailstaticCopy
from django import forms
import django_filters
class DateInput(forms.DateInput):
input_type = 'date'
class AvailFilter(django_filters.FilterSet):
class Meta:
model = AvailstaticCopy
widgets = {'row_date': DateInput(),}
fields = ['row_date', 'director','manager','analyst',]
这是我的模板
{% load widget_tweaks %}
<form method="get">
<div class="well">
<h4 style="margin-top: 0">Filter</h4>
<div class="row">
<div class="form-group col-sm-4 col-md-3">
{{ filter.form.row_date.label_tag }}
{% render_field filter.form.row_date class="form-control" %}
</div>
<div class="form-group col-sm-4 col-md-3">
{{ filter.form.director.label_tag }}
{% render_field filter.form.director class="form-control" %}
</div>
<div class="form-group col-sm-8 col-md-6">
{{ filter.form.manager.label_tag }}
{% render_field filter.form.manager class="form-control" %}
</div>
<div class="form-group col-sm-8 col-md-6">
{{ filter.form.analyst.label_tag }}
{% render_field filter.form.analyst class="form-control" %}
</div>
<div class="form-group col-sm-8 col-md-6">
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-search"></span> Search
</button>
</div>
</div>
</div>
</form>
最佳答案
不太清楚您想到的是哪种日期选择器,但我假设您想要这样的东西:
jQuery UI Datepicker
我希望你知道如何使用第三方 JavaScript 库。这应该超出了这个问题的范围。
一旦您将项目设置为使用 jQuery UI,您就可以更改您的 filters.py
:
class AvailFilter(django_filters.FilterSet):
row_date = django_filters.DateFilter(
widget=DateInput(
attrs={
'class': 'datepicker'
}
)
)
class Meta:
# keep everything but the line widgets
您使用的任何小部件都接受关键字参数
attrs
它需要一个字典,您可以在其中指定 HTML 标签的所有属性。现在当你渲染
row_date
它应该输出如下内容:<input type="date" class="datepicker" ... />
关于django - 如何将日期选择器与 django-filter 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49054846/