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<id>[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 Framework Viewset 返回 404(GET 请求)
使用 django-rest 框架中的 GET 方法将 url 作为参数传递?