0
这是我对显示待售商品的商店页面的看法。显示的项目由用户邮政编码或最受欢迎的项目过滤。也有链接通过裤子,衬衫等进行过滤。链接使用AJAX返回查询集。如何动态链接另一个过滤器到现有的查询集?
我的代码的问题是,点击“裤子”,例如,返回查询集只是裤子,但不过滤邮编。我可以通过这两种方式进行筛选,但是如果用户点击“最受欢迎物品筛选”而不是邮政编码,问题就会变成什么样子?我将如何返回裤子和最受欢迎物品的查询集?
def storefront(request):
if request.user.is_authenticated():
if request.user.my_profile.zipcode:
latest_entries = Entry.objects.filter(zipcode=user.zip).order_by('-pub_date')[:16]
context = {'latest_entries': latest_entries}
else:
latest_entries = Entry.objects.order_by('-pub_date')[:16]
context = {'latest_entries': latest_entries}
else:
latest_entries = Entry.objects.order_by('-pub_date')[:16]
context = {'latest_entries': latest_entries}
if request.is_ajax():
if request.GET.get('filter') == 'shirts':
latest_entries = Entry.objects.filter(entrytype=1)
context = {'latest_entries': latest_entries}
return render(request, 'storefrontload.html', context)
if request.GET.get('filter') == 'pants':
latest_entries = Entry.objects.filter(entrytype=2)
context = {'latest_entries': latest_entries}
return render(request, 'storefrontload.html', context)
if request.GET.get('filter') == 'shoes':
latest_entries = Entry.objects.filter(entrytype=3)
context = {'latest_entries': latest_entries}
return render(request, 'storefrontload.html', context)
return render(request, 'storefront.html', context)
为了澄清这个问题:
但从有两个过滤器终端用户点。 '邮编'/'流行商品'和'衬衫'/'裤子'/'鞋子'。目前,如果最终用户更改过滤器2,则不会保留过滤器1的结果,反之亦然。
这是有帮助的我猜,但仍然没有解决我的问题。因为过滤衬衫不记得最初是选择了“邮编”还是“流行”。 – stephan 2015-04-07 17:42:26