我正在使用Django分页,并且一切都工作正常,除了只有一个页面排序。Django分页不会排序第二页
我曾尝试:
if request.method == 'POST':
if request.POST.get('sort_by') == 'price':
products_list = Product.objects.filter(category = category).order_by('price')
selected_sort_price = "selected"
elif request.POST.get('sort_by') == 'name':
products_list = Product.objects.filter(category = category).order_by('name')
selected_sort_name = "selected"
elif request.POST.get('sort_by') == 'date':
products_list = Product.objects.filter(category = category).order_by('-id')
selected_sort_date = "selected"
show=request.POST.get('show', 5)
else:
products_list=Product.objects.filter(category = category).order_by('-id')
...
page = request.GET.get('page', 1)
paginator = Paginator(products_list, show)
try:
products = paginator.page(page)
except PageNotAnInteger:
products = paginator.page(1)
except EmptyPage:
products = paginator.page(paginator.num_pages)
以上仅当有来电后,如果没有呼叫后,则按照创建日期排序工作。
因此,如果用户想按价格排序,他会从下拉菜单中选择价格,然后onchange
表单将被提交并且相应地对对象进行排序。问题是,当用户转到第二页时,所有内容都会回到默认值,因为不会发出任何邮寄呼叫,并且以前的发布数据不会保留。
我能做些什么来使排序适用于所有页面?
寻找一些方向,
首先,为什么要使用POST?您不会修改任何服务器数据,只是检索参数,相当于搜索表单或类别链接。所以对于GET,你使用'request.GET'。要处理模板中的动态查询字符串,请查看[here](https://stackoverflow.com/q/5755150/1600649)以获取灵感。 – Melvyn