Python Django过滤器:将多个模型(相同类型)的过滤数据收集到一个视图中
我有四个相同结构的不同模型(相同的列数和相同的列名),这四个模型属于不同的类别。我想使用一些过滤字段过滤来自每个模型的数据,我希望这些相同的过滤器适用于同一实例中的所有模型,并将来自所有模型的所有过滤数据显示在一个视图中。 我正在使用django过滤器第三方库。下面是一个模型的示例过滤器 过滤器.pyPython Django过滤器:将多个模型(相同类型)的过滤数据收集到一个视图中,python,django,django-views,django-tables2,django-filters,Python,Django,Django Views,Django Tables2,Django Filters,我有四个相同结构的不同模型(相同的列数和相同的列名),这四个模型属于不同的类别。我想使用一些过滤字段过滤来自每个模型的数据,我希望这些相同的过滤器适用于同一实例中的所有模型,并将来自所有模型的所有过滤数据显示在一个视图中。 我正在使用django过滤器第三方库。下面是一个模型的示例过滤器 过滤器.py import django_filters from django_select2 import * from django_filters import STRICTNESS from djan
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 %}
{{Header}
{{filter.form.as_table}
{{list_filter}}
{%load render_Tables from django_Tables 2%}
{%render_table filter.qs%}
虽然我手头上没有所有信息,但我建议重新构建您的数据库。如果所有的模型都是“一样的”,为什么它们不一样呢?您可以添加一个标志(带有选项的字符域
),以区分不同的“类别”。这会使你的问题变得微不足道,因为一开始就没有问题。我真的很感激你的回答,但我有大量的数据,如果我只有模型,就很难管理这么多。有没有办法将过滤器应用于所有型号?