Django如何通过GET请求链接排序和筛选
当我选择订购时,我不能真正自动包含每页过滤器。 如何使这些过滤器彼此“可见”?我需要包括或阅读什么 这只是我观点的一小部分Django如何通过GET请求链接排序和筛选,django,filter,request,chaining,Django,Filter,Request,Chaining,当我选择订购时,我不能真正自动包含每页过滤器。 如何使这些过滤器彼此“可见”?我需要包括或阅读什么 这只是我观点的一小部分 if order == 'asc': p = p.order_by('name') elif order == 'desc': p = p.order_by('-name') elif order == 'price_asc': p = p.order_by('price_netto') elif order == 'price_desc':
if order == 'asc':
p = p.order_by('name')
elif order == 'desc':
p = p.order_by('-name')
elif order == 'price_asc':
p = p.order_by('price_netto')
elif order == 'price_desc':
p = p.order_by('-price_netto')
else:
p.order_by('name')
if limit == "12":
per_page = "12"
elif limit == "24":
per_page = "24"
elif limit == "48":
per_page = "48"
else:
from endless_pagination.settings import PER_PAGE
per_page = PER_PAGE
HTML
---索托瓦尼---
Malejąco według nazwy
Rosnąco według nazwy
罗森科大学
马莱杰科·韦杜格·塞尼
Produktów na stronę:
,
为什么不使用javascript,jquery。您需要一个函数来读取查询字符串并覆盖正在更改的项
<select id="sort-dropdown">
<option value="">--- Sortowanie ---</option>
<option rel="order" value="desc">Malejąco według nazwy</option>
<option rel="order" value="asc">Rosnąco według nazwy</option>
<option rel="order" value="price_asc">Rosnąco według ceny</option>
<option rel="order" value="price_desc">Malejąco według ceny</option>
</select>
Produktów na stronę:
<a rel="limit" id="limit-12" href="#">12</a>, <a rel="limit" id="limit-24" href="#">24</a>, <a rel="limit" id="limit-48" href="#">48</a>
我将努力实现这一点。不管怎样,没有js和jquery可以做到这一点吗?仅使用django函数?只是问问而已。
<select id="sort-dropdown">
<option value="">--- Sortowanie ---</option>
<option rel="order" value="desc">Malejąco według nazwy</option>
<option rel="order" value="asc">Rosnąco według nazwy</option>
<option rel="order" value="price_asc">Rosnąco według ceny</option>
<option rel="order" value="price_desc">Malejąco według ceny</option>
</select>
Produktów na stronę:
<a rel="limit" id="limit-12" href="#">12</a>, <a rel="limit" id="limit-24" href="#">24</a>, <a rel="limit" id="limit-48" href="#">48</a>
function getParameterByName(name)
{
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.search);
if(results == null)
return "";
else
return decodeURIComponent(results[1].replace(/\+/g, " "));
}
function redirect(order, limit) {
window.location.url = "?order=" + order + "&limit=" + limit;
}
$("#sort-dropdown").change(function () {
redirect($(this).val(), getParameterByName("limit"));
});
$("#limit-12").change(function () {
redirect(getParameterByName("order"), "12");
});
$("#limit-24").change(function () {
redirect(getParameterByName("order"), "24");
});
$("#limit-48").change(function () {
redirect(getParameterByName("order"), "48");
});