【问题标题】:Django-table2 and Django-filter is not filteringDjango-table2 和 Django-filter 没有过滤
【发布时间】:2019-06-06 03:22:20
【问题描述】:

我所做的与文档完全一样,但是当我在“名称”字段中输入一个值并单击过滤器时,页面会刷新但没有过滤任何内容。按照我的代码。

filter.py

class ClientFilter(django_filters.FilterSet):
    class Meta:
        model = Client
        fields = ['name']

views.py

class RelatorioClientsView(FilterView, ExportMixin, CustomListView):
    template_name = 'relatorios/clients/geral.html'
    model = Client
    table_class = ClientTable
    context_object_name = 'all_clients'
    permission_codename = 'view_clients'
    filterset_class = ClientFilter

    def get_context_data(self, **kwargs):
        context = super(RelatorioClientsView,
                        self).get_context_data(**kwargs)

        table = ClientTable(Client.objects.all())
        table.paginate(page=self.request.GET.get('page', 1), per_page=15)

        context['table'] = table
        RequestConfig(self.request).configure(table) #ordena

        return context

tables.py

class ClientTable(ColumnShiftTable):
    class Meta:
        model = Client
        sequence = ('id', 'name')
        template_name = 'django_tables2/bootstrap.html'

template.html


{% load render_table from django_tables2 %}
{% load bootstrap3 %}
{% if filter %}
     <form action="" method="get" class="form form-inline">
           {% bootstrap_form filter.form layout='inline' %}
           {% bootstrap_button 'filter' %}
     </form>
{% endif %}
{% render_table table' %}

Here 是过滤器的文档部分链接

【问题讨论】:

    标签: django python-3.x django-filter django-tables2


    【解决方案1】:

    过滤后的查询集在您的views.py 中被原始查询集覆盖:

    table = ClientTable(Client.objects.all())
    

    您不必将客户端对象传递给视图中的上下文

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 2021-04-02
      • 1970-01-01
      • 2011-09-20
      • 2018-12-23
      • 2018-09-29
      • 2021-07-02
      相关资源
      最近更新 更多