如何从 Django 中的数据库中删除单个数据(不删除整行)

How to delete a single data from database in django (not deleting the entire row)

为了让您了解我的问题,我先展示我的代码,然后再展示我的问题。

在models.py中:

class Post(models.Model):
    content = models.CharField(max_length=140)
    date_created = models.DateTimeField(auto_now_add=True)
    poster = models.ForeignKey(User, on_delete=models.CASCADE)
    likes = models.IntegerField(default=0)
    liked_by = models.ForeignKey(
        User, on_delete=models.CASCADE, related_name='liked_by', blank=True, null=True)

  
    def serialize(self):
        return {
            "id": self.id,
            "poster": self.poster.username,
            "poster_image_url": self.poster.image_url,
            "date_created": self.date_created.strftime("%b %d %Y, %I:%M %p"),
            "content": self.content,
            "likes": self.likes,}

在views.py中:

 @csrf_exempt
    def get_post(request, post_id):
        post = Post.objects.get(pk=post_id)
        if request.method == "GET":
            return JsonResponse(post.serialize())
        elif request.method == "PUT":
            data = json.loads(request.body)
            if data.get('likes') is not None:
                if data['likes'] > post.likes:
                    post.likes = data['likes']
                    post.liked_by = request.user
                else:
                    post.likes = data['likes']
                    post.liked_by.remove(request.user)
        post.save()
        return HttpResponse(status=204)

我需要从 [=][=][=] 的 liked_by 列中删除 request.user 14=] 对象。 但是出现这个错误:

AttributeError: 'User' object has no attribute 'remove'

我该如何解决这个问题?

您可以将字段值设置为 None,这实际上会删除 post 模型实例与用户模型之间的关联。

您不需要 request.user,因为关系是多对一的(post 模型实例只能与一个用户相关)。

post.liked_by = None
post.save()