我已经建立了一个Django Rest框架,可以正确地服务于GET请求。在这里询问了前面的问题之后,它还应该能够正确地更新对象。但是,我不确定如何才能只更新模型对象中的一个字段。我有一个这样的模型视图集:
class TaskViewSet(viewsets.ModelViewSet):
queryset = Task.objects.filter(done = False).order_by('-unixTime')
serializer_class = TaskSerializer
paginate_by = None
我通过这样的路由器注册网址:
^{pr2}$序列化程序与现在一样基本:
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ('id', 'user', 'task', 'unixTime', 'done')
我希望能够更新由主键id标识的任务对象的“完成”字段。我想我需要使用部分更新模型或路径,但我不确定如何实现这一点。另外,为了提供更多信息,DRF浏览器视图显示允许的HTTP方法是GET, POST, HEAD, OPTIONS
。在
如果使用的是
ModelViewSet
,只需将put添加到url的as_view()
参数中。在您的url中应该有这样的内容:
即:
^{pr2}$然后可以使用
requests.put
来更新它。在如果要重写update方法,可以将以下内容添加到视图集中:
相关问题 更多 >
编程相关推荐