如何编写只更新指定字段的自定义字段序列化程序?

2024-09-29 23:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

如何编写只更新指定字段的自定义字段序列化程序

我有一个模型:

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()

但当我访问这个视图时,出现了一个问题:

Expected view TodoListUpdateIsFinishAPIView to be called with a URL keyword argument named "pk". Fix your URL conf, or set the .lookup_field attribute on the view correctly.

我尝试添加lookup_field = "id"lookup_field = "pk",但仍然不起作用


编辑 我的模式如下:

url(r'^todolist/update_isfinish/$', TodoListUpdateIsFinishAPIView.as_view(), name='todolist-update_isfinish')

Tags: tonameselfviewtruefieldautois

热门问题