python - self 不应该添加多对多字段
问题描述
class User(AbstractUser):
first_name = models.CharField(max_length=64)
last_name = models.CharField(max_length=64)
bio = models.TextField(max_length=128, blank=True)
followers = models.ManyToManyField('self', related_name='followers', blank=True)
所以我有这张表,但是当我在关注者字段中添加用户时,django 也会以两种方式添加用户。例如,如果我有一个名为 john 的用户,并且我想关注一个名为 math 的用户。当 john 被添加到 math 的追随者时,math 也被添加到 john 的追随者中。我不知道为什么会这样。我应该使用其他类型的模型吗?
解决方案
您需要添加symmetrical=False,
您的 m2m 关系。和 + 符号在相关名称的末尾。
followers = models.ManyToManyField('self', symmetrical=False, related_name='followers+', blank=True)
推荐阅读
- xml - 如何在 Talend 中拆分具有嵌套循环的 XML
- android - 如何在 childeventlistener 或 addvalueeventlistener 中一一创建自定义对话框?
- list - R中的数据框样式化和导出列表
- android - 升级到 Android Studio (2020.3.1) Canary 15 导致 Compose 构建错误
- flutter - 你好朋友。我创建了底部导航栏,如下所示,但我想创建一个顶部导航栏,如底部,我将如何做到这一点?
- c++ - 是否可以创建一个从另一个结构生成完全 const 隐式可转换结构的模板?
- amazon-web-services - 如何将 GupShup 的回调 URL 路由到 Lambda 函数?
- python - GEKKO 最佳控制。如何强制值高于某些阈值?
- python - Python Bitmex 交易机器人 -. 向 api/v1/instrument/active 和 api/v1/user/margin 发出获取请求时出现连接错误
- logstash - Logstash 从 CSV 解析 2021-04-23T09:00:12.256466