Почему запрос django get возвращает код состояния 400, когда параметр get не включен в URL запроса? - PullRequest
0 голосов
/ 16 апреля 2019

Я создал конечную точку API отдыха, для которой требуется один параметр get 'id'. Когда я включаю «id» в URL, он работает нормально, но когда я исключаю «id», он дает 400 кодов состояния.

Я использую Django 1.10 в качестве веб-фреймворка и Django rest framework для API. Представление на основе класса написано так, чтобы возвращать пустой объект, если в запросе get отсутствует параметр 'id'. Я пробовал разные шаблоны URL, но, похоже, ничего не работает.

Шаблон URL-адреса, как показано ниже -

urlpatterns = [ url(r"^scheme/", APIScheme.as_view()),
]

Я использую Почтальон для отправки запроса. Для URL {{base}}/scheme/?id=1 Я получаю ожидаемый результат, но для URL {{base}}/scheme/ он возвращает код состояния как 400. Что может быть причиной этого и как отладить это?

1 Ответ

0 голосов
/ 16 апреля 2019

Я думаю, что вам нужно добавить

   url(r"^scheme/<int:id>/",.....) 

в URL URLpatterns, и id по умолчанию pk, попробуйте добавить

<int:pk> 

, потому что ваш взгляд требует и аргумент, который должен быть предоставлен.по шаблонам

...