【问题标题】:Returning filter on the same template在同一模板上返回过滤器
【发布时间】:2015-02-18 23:39:58
【问题描述】:

我的views.py中有一个特殊的查询集
我想在下面提到的同一个 ListView 中退回供不应求的产品。
调用该初始值,它会返回所有记录。
当我点击链接“供不应求的产品”时,它会过滤页面。

我问:

  1. 如何保持两个视图正常和过滤器在同一个ListView下面?

  2. 如何完成下面的链接?

views.py:

from django.views.generic import CreateView, TemplateView, ListView, DetailView
from django.db.models import F
from .models import Customer, Brand, Product, Sale, SaleDetail


class ProductList(ListView):
    template_name = 'product_list.html'
    model = Product
    context_object = 'product_list'
    paginate_by = 100


    def get_stock_down(self):
        s = Product.objects.filter(stoq__lt=F('stoq_min'))
        var_get_filter = self.request.GET.get('filter_link')
        return s

product_list.html:

<p name="filter_link" class="pull-right"><a href="">Produtos em baixo estoque</a></p>

【问题讨论】:

    标签: django filter django-template-filters


    【解决方案1】:

    我想你差不多了。

    我认为您应该覆盖 get_queryset,而不是向视图添加新方法:

    def get_queryset(self):
        s = Product.objects.all()
        if self.request.GET.get('filter_link', False):
            s = s.filter(stoq__lt=F('stoq_min'))
        return s
    

    <p name="filter_link" class="pull-right"><a href="?filter_link=1">Produtos em baixo estoque</a></p>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-19
      • 2011-04-12
      • 2011-12-10
      • 2019-09-06
      • 2022-10-14
      • 2010-12-23
      • 1970-01-01
      相关资源
      最近更新 更多