django - 如何将日期选择器与 django-filter 一起使用?

标签 django datepicker django-filter

我想弄清楚如何将 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/

相关文章:

django - twitter bootstrap 日期选择器不工作

python - 验证 ModelForm 的最佳方法

javascript - 如何将日期选择器的 HTML5 表单最小限制设置为 "Check-In Date (user input)"

python - 如何使用 django_filters.DateFilter?

django - 如何在 Django 中创建多个过滤器?

forms - django-filter 更改默认表单外观

django - 单个 Django 应用程序的多个登录 URL

python - 使用 gunicorn 时如何设置 django 测试服务器?

angular - 找不到模块 '@angular-persian/material-date-picker' 或其对应的类型声明

javascript - 当 minViewMode : 1 时,如何使 bootstrap datepicker 选择该月的最后一天而不是第一天