django - 与自我表Django的多对多关系
问题描述
我有一个带有多对多关系的自引用列的表
class PanelUser(core_models.TimestampedModel):
assigned = models.ManyToManyField("self", related_name="panelusers", blank=True)
def __str__(self):
return self.user.username
问题 我有三条记录A,B,C,如果我分配 A = B然后自动分配B = A
我不明白为什么会这样,我如何解决它。
解决方案
A在使用“self”时ManyToManyField
需要一个symmetrical
参数,当设置为False
它时,它会阻止您描述的行为并使关系不对称
assigned = models.ManyToManyField(
"self",
related_name="panelusers",
blank=True,
symmetrical=False
)
推荐阅读
- python - 如何在 pyinfra 中包含自定义模块?
- android - 如何在屏幕初始显示时隐藏滚动条?
- c - 如何使用 C 语言在双链表中添加和删除节点?
- android - Android:尝试获取保存的图像 URI 时没有内容提供程序
- visual-studio - 即使构建成功,也没有创建工件
- activemq - ActiveMQ 作为 MQTT 代理,无需客户端即可直接从中读取消息
- scala - 是否有可能知道演员邮箱中有多少条消息?
- laravel - Laravel + Livewire:如何修复分页元素获取方法错误
- c++ - 二维链表的实现
- mysql - 如何使用 phpmyadmin 导入带有索引和外键的 MySQL 数据库?