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

时间:2016-12-31 00:45:05

标签: django django-rest-framework

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

api views.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()),

行程models.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&

1 个答案:

答案 0 :(得分:0)

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

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