Вы можете создать «строку параметров».Предположим, что в вашем коде у вас есть:
my_view( request, page, options):
sort_choices = {P:'price',N:'name', ...}
n_item_choices = {'S':5, 'L':50, 'XL':100)
ascending_descending_choices = {'A':'', 'D':'-'}
...
, тогда вы можете объединить параметры в виде:
options='P-S-D' #order by price, 5 items per page, descending order
кодировать опционы как:
<a href="?page={{ prev_page }}&options={{ options }}">Previous</a>
затем, вПараметры захвата urls.py и в представлении:
my_view( request, page, options):
... #choides ....
try:
optionsArray = options.split('-')
sort_by = sort_choices[ optionsArray[0] ]
n_ites_page = n_item_choices[ optionsArray[1] ]
asc_or_desc = ascending_descending_choices[ optionsArray[2] ]
...
except:
somebody is playing ....
с помощью этого метода вы можете добавить дополнительные параметры разбивки на страницы без изменения urls.py, все, что вам нужно, это добавить параметры в конце параметров строки.Это имеет свои преимущества, но также и некоторые опасности: надеюсь, вы сможете определить риски.