这是我的观点:
class PersonalView(SingleTableMixin, FilterView):
model = Invoice
template_name = 'invProj/index.html'
table_class = InvoiceTable
filterset_class = InvoiceFilter
context_object_name = 'invoice'
ordering = ['invoice_due_date']
def get_table_data(self):
return Invoice.objects.filter(invoice_owner__username=self.request.user).order_by('i
nvoice_due_date')
现在,get_table_data
做正确的事情,根据用户过滤发票。但是,InvoiceFilter(django_filters.FilterSet)
不起作用。但是,当我不覆盖get_table_data
时 。
现在,过滤器显示为正常并正常传递,只是不过滤。无论我输入哪个过滤字符串,它总是根据get_table_data
显示数据。
我怎样才能得到它?我想定义我的custum表数据和让我定义的过滤器在那里工作。
答案 0 :(得分:0)
现在好了,我自己弄清楚了......
而不是覆盖get_table_data
,我不得不覆盖get_queryset
,就像这样
def get_queryset(self):
qs = Invoice.objects.filter(invoice_owner__username=self.request.user).order_by('invoice_due_date')
return qs