Я не могу понять, почему при разбивке на страницы Django иногда к URL-адресу добавляются пробелы (%20
):
https://example.com/accounts/?page=2%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20&q=%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20&ordering=-date_joined
Это происходит, если я нажимаю Next
или определенную кнопку c страницы поэтому я предполагаю, что это связано с тем, как написано разбиение на страницы. Более конкретно, я думаю, что это связано с request.GET.items
. Используют ли менеджеры контекста request.GET.items
?
разбиение на страницы :
{% if page_obj.has_next %}
<a class="btn btn-default btn-inactive mb-4 m-1"
href="?page={{ page_obj.next_page_number }}{% for key, value in request.GET.items %}
{% if key != 'page' %}&{{ key }}={{ value }}{% endif %}{% endfor %}">Next</a>
<a class="btn btn-default btn-inactive mb-4 m-1"
href="?page={{ page_obj.paginator.num_pages }}{% for key, value in request.GET.items %}
{% if key != 'page' %}&{{ key }}={{ value }}{% endif %}{% endfor %}">Last</a>
{% endif %}
вид :
class AccountStatusListView(AccountSearchMixin, ListView):
model = Employee
template_name = 'employees/account_list.html'
paginate_by = 15
def get_ordering(self, *args, **kwargs):
ordering = self.request.GET.get('ordering', '-is_active')
return ordering
def get_queryset(self, *args, **kwargs):
queryset = super(AccountStatusListView, self).get_queryset()
queryset = queryset.filter(Q(
supervisor__exact=self.request.user)) | queryset.filter(Q(
supervisor__isnull=False)) | queryset.filter(Q(
is_active__exact=False))
ordering = self.get_ordering()
if ordering and isinstance(ordering, str):
ordering = (ordering,)
queryset = queryset.order_by(*ordering)
return queryset
У кого-нибудь есть есть идеи, что здесь происходит?