Django过滤器:将多个模型(相同类型)中的过滤数据收集到一个视图中

时间:2017-07-14 08:11:46

标签: python django django-views django-tables2 django-filters

我有四个不同的模型具有相同的结构(相同的列数和相同的列名),这四个模型属于不同的类别。我想使用一些过滤器字段来过滤每个模型中的数据,并且我希望这些相同的过滤器适用于同一实例中的所有模型,并将所有模型中的所有过滤数据显示在一个视图中。 我正在使用django-filters第三方库。以下是模型的示例过滤器。

filters.py

import django_filters
from django_select2 import *
from django_filters import STRICTNESS
from django_filters.widgets import RangeWidget
from InputForms.models import Reportable

class RFilter(django_filters.FilterSet):
Date = django_filters.DateFromToRangeFilter(widget=RangeWidget(attrs={'placeholder': 'YYYY/MM/DD'}))
class Meta:
    model = Reportable
    fields = ['Cause','TypeOfEmployee','Date','UnitName','Shift']

    strict = STRICTNESS.RETURN_NO_RESULTS

views.py

from django.shortcuts import render
from .filters import *
from InputForms.models import Reportable

def RFView(request):
    f = RFilter(request.GET, queryset=Reportable.objects.all())
    return render(request, 'template.html', {'filter': f,'Header':"Reportable"})

template.html

<h3>{{ Header }}</h3>
<form action="" method="get">
    {{ filter.form.as_table }}
    {{ list_filter }}
    <input type="submit" />
</form>
{% load render_table from django_tables2 %}
{% render_table filter.qs %}

0 个答案:

没有答案