Динамические урлы Django перенаправляют на неправильную функцию
Итак, я пытаюсь создать урлы, чтобы пользователь мог видеть жалобы, либо передав определенный параметр, либо отсортировать по умолчанию по upvotes, если параметр не передан.
urls.py
path('', views.exploreComplaints, name='explore-complaints'),
path('?sort_by=<str:sorting_parameter>/', views.exploreComplaints, name='explore-complaints-by-parameter'),
views.py
def exploreComplaints(request, sorting_parameter="upvotes"):
complaints = Complaint.objects.all()
if(sorting_parameter=="name"):
complaints = sorted(complaints, key = lambda x : x.complaint_name)
else:
complaints = sorted(complaints, key = lambda x : x.complaint_upvotes, reverse = True)
context = {'complaints':complaints}
return render(request, 'complaints/complaints.html', context)
Параметр сортировки не работает, когда я перехожу на URL, значение sorting_parameter всегда upvotes, даже когда я перехожу на URL с ?/sort_by=name
в конце. Где я ошибаюсь?
Джанго URL диспетчер не смотрит на GET или POST параметры при разрешении обработчика.
Что вам нужно, так это получить доступ к request.GET отображению в представлении: Django request get parameters