来自url Djjango的多个请求过滤器

时间:2015-09-10 11:18:00

标签: python django

我试图通过从请求Django获取的类别ID来过滤项目。它看起来像这样:

   url(r'^productlist.aspx&category(?P<category>\d*)$', 'shop.views.shoplist'),

所以在网址中看起来像:

http://example.com/store/productlist.aspx&category6

其中&#34; 6&#34;是类别ID

这是views.py

def shoplist(request, category, format=None):
    args = {}
    args.update(csrf(request))
    args['products'] =  ShopProduct.objects.all().order_by('-id')
    if category:
        args['products'] = ShopProduct.objects.filter(shop_product_category_id = category)
    return render_to_response('shop-catlist.html', args)

效果很好,但是我想按照多个类别ID来过滤产品

在网址中

它将如下所示:http://example.com/store/store.aspx&category1,2,3,4,5

请帮帮我

注意:类别ID将通过表单中的复选框收集,并且将根据所选的JavaScript复选框生成网址

1 个答案:

答案 0 :(得分:1)

不要像这样格式化网址。在URL中传递查询是一种非常合适的方法,即使用查询字符串:

http://example.com/store/productlist/?category=1&category=2&category=3

(另外,你为什么假装你的Django网站在.NET上运行?不要这样做。)

现在您的网址格式如下所示:

url(r'^productlist/$', 'shop.views.shoplist'),

您的观点是:

def shoplist(request):
    categories = request.GET.getlist('category')
    if categories:
       products = ShopProduct.objects.filter(shop_product_category_id__in=categories)