簡體   English   中英

在Django中的url中設置GET參數

[英]Setting GET parameters in url in Django

我想用各種可選過濾器創建一個列表視圖。 我的網址應如下所示:

shop/category_6/?manufacturer_id=3

當我將此URL放入瀏覽器表單中時,它會很好地工作。 但是,當我嘗試將此選項添加到模板時,它給了我NoReverseMatch。 我的模板:

{% for manufacturer in manufacturer_list %}
    <p><a href = "{% url 'shop:item_list' category_id=category.id manufacturer_id=manufacturer.0 %}">{{manufacturer.1}}</a></p>
{% endfor %}

我的看法是:

class ItemListView(ListView):
    model = Item
    context_object_name = 'item_list'
    template_name = 'shop/item_list.html'

def get_queryset(self, **kwargs):
    full_item_list=Item.objects.all()
    queryset=full_item_list.filter(category__id=int(self.kwargs['category_id']))
    manufacturer_id = self.request.GET.get('manufacturer_id')
    if manufacturer_id:
        queryset=queryset.filter(manufacturer__id=int(manufacturer_id))
    return queryset

def get_context_data(self, **kwargs):
    context = super(ItemListView, self).get_context_data(**kwargs)
    context['category']=get_object_or_404(Category, pk=self.kwargs['category_id'])
    context['manufacturer_list'] = self.get_queryset(**kwargs).values_list('manufacturer__id', 'manufacturer__name').distinct().order_by('manufacturer__name')
    return context

我怎么了

您未配置GET參數...可能是shop / category_6 /? Manufacturer_id = 3

<a href = "{% url 'shop:item_list' category_id=category.id %}?manufacturer_id={{ manufacturer.0 }}">{{manufacturer.1 }}</a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM