Django REST 框架 http 404 详细信息”:“未找到。”

Posted

技术标签:

【中文标题】Django REST 框架 http 404 详细信息”:“未找到。”【英文标题】:Django rest framework http 404 detail": "Not found." 【发布时间】:2017-05-15 05:44:42 【问题描述】:

每当我尝试使用 PUT 请求使用主键更新行程时,我都会收到 HTTP 404 详细信息”:“未找到。”

apiviews.py

class updateTempItinerary(generics.UpdateAPIView):
    queryset = tempItinerary.objects.all()
    serializer_class = tempItinerarySerializer
    permission_classes = (permissions.AllowAny,)

api urls.py

url(r'^updatetempitinerary/$(?P<pk>)(?P<itineraryID>)(?P<destinations>)(?P<hotels>)', views.updateTempItinerary.as_view()),

行程模型.py

class tempItinerary(models.Model):
    itineraryID = models.CharField(max_length=100, unique=True)
    user = models.CharField(max_length=100)
    country = models.IntegerField()
    destinations = models.CharField(max_length=100, default='None')
    hotels = models.CharField(max_length=100, default='None')
    travelClass = models.CharField(max_length=100)
    date = models.DateField()
    travelers = models.IntegerField(default=1)

    def __unicode__(self):
        return '%s %s %s %s %s %s %s %s ' % (self.pk, self.travelers, self.date, self.travelClass, self.hotels, self.destinations, self.country, self.itineraryID, self.user)

网址即时测试

127.0.0.1:8000/api/updatetempitinerary/?pk=1&format=json&

【问题讨论】:

您似乎在 url 中遗漏了几个参数? 【参考方案1】:

正如 Booby 建议的那样,您的网址是错误的。如果您使用的是 PUT 请求,我建议您删除除 id 之外的 url 参数。所以它看起来像这样:url(r'^updatetempitinerary/(?P&lt;id&gt;[0-9]+)/$', views.updateTempItinerary.as_view()), 就是这样(注意末尾有一个 $ 符号)

如果这不起作用,请提供您的序列化程序和完整的错误回溯。您可以在 127.0.0.1:8000/api/updatetempitinerary/1/ 上更新您的模型。

【讨论】:

以上是关于Django REST 框架 http 404 详细信息”:“未找到。”的主要内容,如果未能解决你的问题,请参考以下文章

Django REST 框架 RetrieveAPIView 获取空的“id”参数并返回 404 错误

在 Django REST 中引发异常

Django REST Framework Viewset 返回 404(GET 请求)

使用 django-rest 框架中的 GET 方法将 url 作为参数传递?

Django Rest Framework ViewSet 出现 404 错误

在 Django Rest Framework 中找不到资源时返回自定义 404 错误