如何编写自定义字段序列化程序,只更新指定的字段?
我有一个模特:
class TodoList(models.Model):
content = models.CharField(max_length=64)
user = models.ForeignKey(to=User, related_name="todolists")
is_finish = models.BooleanField(default=False)
ctime = models.DateTimeField(auto_now_add=True, null=True, blank=True)
uptime = models.DateTimeField(auto_now=True, null=True, blank=True)
def __str__(self):
return self.name
def __unicode__(self):
return self.name
我只想更新is_finish
字段:
class TodoListUpdateIsFinishSerializer(ModelSerializer):
class Meta:
model = TodoList
fields = ["id", "is_finish"]
在我看来:
class TodoListUpdateIsFinishAPIView(RetrieveUpdateAPIView):
serializer_class = TodoListUpdateIsFinishSerializer
permission_classes = []
queryset = TodoList.objects.all()
但是当我访问此视图时,会出现问题:
使用名为“pk”的URL关键字参数调用预期视图TodoListUpdateIsFinishAPIView。修复您的网址,或者在视图上正确设置
.lookup_field
属性。
我尝试添加lookup_field = "id"
或lookup_field = "pk"
,但仍无效。
修改 我的网址是下面的:
url(r'^todolist/update_isfinish/$', TodoListUpdateIsFinishAPIView.as_view(), name='todolist-update_isfinish')
答案 0 :(得分:1)
url(r'^todolist/update_isfinish/(?P<pk>\d+)/$', TodoListUpdateIsFinishAPIView.as_view(), name='todolist-update_isfinish')
使用此URL作为django需要url参数来更新