У меня есть проект Django 2.2
(с использованием остальной инфраструктуры), где мне нужно вызвать функцию представления с URL следующего формата:
/class/students?date=07092019`
, и я настроил следующий URLroute для обработки этого URL:
re_path(r'^class/students%3Fdate%3D(?P<date>\w+)/$',StudentsInClassView.as_view() ,name='student')
Соответствующая функция представления имеет следующее определение:
class StudentsInClassView(APIView):
def get(self, request, date,format=None):
По какой-то причине, когда я иду на URL, он преобразуется в
/class/students/?date=07092019
и другое представление с URL
path('class/students/',StudentsView.as_view() ,name='students')
.
Если я удаляю ?date=
из URL и просто включаю фактическую дату, StudentsInClassView
вызывается, как и ожидалось. Я избежал как вопросительного знака, так и знака равенства, но это, похоже, не имеет значения.
Как я могу заставить слаг ?date=
оставаться в URL, как он используется для вызоваStudentsInClassView? Есть ли другое регулярное выражение, которое можно использовать для сопоставления всего URL?