首页 > 解决方案 > ManyToManyRelation 中的 Django models.CASCADE

问题描述

我与用户和帖子有 m2m 关系。一个用户可以喜欢很多帖子,同时一个帖子可以被很多用户喜欢。

如果我这样做:

post.liked_by.remove(current_user)

使用此模型结构:

class Posts(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="posts")
    creation_date = models.DateTimeField(auto_now_add=True, blank=True)
    content = models.TextField(null=True)

class User(AbstractUser):
    follows = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='followed_by')
    likes = models.ManyToManyField(Posts, related_name='liked_by')
    pass

据我所知,用户对象将从liked_by关系的一部分中删除。

但我的问题是:post 对象也会从likes关系的一部分中删除吗?

标签: djangodjango-models

解决方案


是的,关系将被删除。

remove(*objs, bulk=True)

从相关对象集中移除指定的模型对象。

Django 文档

还有更多例子


推荐阅读