我试图通过从请求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复选框生成网址
答案 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)