当请求URL中不包含get参数时,为什么django get请求返回400状态代码?

时间:2019-04-16 03:47:57

标签: django django-rest-framework httprequest

我创建了rest API端点,该端点需要一个get参数'id'。当我在网址中包含“ id”时,它工作正常,但是当我排除“ id”时,它给出了400状态代码。

我将Django 1.10用作Web框架,并将Django rest框架用于API。 如果在get请求中不存在'id'参数,则编写基于类的视图以返回空对象。我尝试了不同的网址格式,但似乎无济于事。

网址格式如下-

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

我正在使用邮递员发送请求。对于网址 {{base}}/scheme/?id=1 我得到了预期的结果,但是对于URL {{base}}/scheme/,它返回的状态码为400。这可能是什么原因以及如何调试它?

1 个答案:

答案 0 :(得分:0)

我认为您必须添加

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

在您的URL模式中,默认ID为pk 尝试添加

<int:pk> 

因为您的视图需求和参数必须由urlpatterns提供