Я знаю это '?' не рекомендуется (разрешен?) в URL django, но одно из моих требований - обрабатывать внешние вызовы, такие как "/ files /? access_token =", и я не могу изменить их синтаксис, поэтому мне нужно его обработать. Я пробовал:
1 re_path(r'(?P<filenamename>[^/]+)(.+)access_token', views.GetFileInfo, name='get_info')
2 re_path(r'(?P<filenamename>[^/]+)(\?)access_token', views.GetFileInfo, name='get_info')
3 re_path(r'(?P<filenamename>[^/]+)(?)access_token', views.GetFileInfo, name='get_info')
4 re_path(r'(?P<filenamename>[^/]+)?access_token', views.GetFileInfo, name='get_info')
5 re_path(r'(?P<filenamename>[^/]+)\?access_token', views.GetFileInfo, name='get_info')
Но ничего из вышеперечисленного не является решением. Верхний URL работает с другими символами, но не с символом вопроса. Я начинаю думать о написании собственного промежуточного программного обеспечения (никогда не делал этого) для изменения свойств запроса или использования чего-то вроде url_rewrite, но все это выглядит как чрезмерная инженерия такой простой задачи, как обработка символа. Я что-то упускаю?