Строка запроса [wiki] является , а не частью пути. Таким образом, вы не можете захватить или проверить это в urlpatterns
. Ваш путь выглядит следующим образом:
path('', views.QuestionList.as_view())
По вашему мнению, вы можете соответствующим образом отфильтровать набор запросов:
from django.views.generic.list import ListView
from app.models import Question
class QuestionList(ListView):
model = Question
def get_queryset(self, *args, **kwargs):
qs = super().get_queryset(*args, **kwargs)
if 'tag' in <b>self.request.GET</b>:
qs = qs.filter(tag__id=<b>self.request.GET['tag']</b>)
if 'order_by' in <b>self.request.GET</b>:
qs = qs.order_by(<b>self.request.GET['order_by']</b>)
return qs
При этом вы вводите уязвимость в систему безопасности, допуская произвольное определение.
Более того, возможно, стоит взглянуть на django-filter
[GitHub] , чтобы выполнить фильтрацию на основе QueryDict
в более декларативной форме.