如何在自类中使用ManyToManyField
我在我的 models.py 文件里有一个叫 Account 的模型。
现在我想创建一个字段,让我可以选择我自己的模型对象。比如说,如果我有三个账户 {Jack, Harry, Helena},
我想在这三个账户中选择我想要的。实际上,我只是想创建一个 关注系统。Jack 可以关注 Harry 和 Helena,
而且 Helena 也可以关注 Jack 或者 Harry。
请问我该怎么做呢?
models.py 文件中的 Account 类
class Account(models.Model):
username = models.CharField(max_length=100)
following = models.ManyToManyField(**Account**, blank=True)
1 个回答
1
几乎就像你在标题中提到的那样:使用 'self'
。不过这里有个注意事项:ManyToManyField
(多对多字段)如果指向自己,默认情况下是对称的:也就是说,如果A关注了B,那么B会自动关注A。这可能不是你想要的效果。如果是这样的话,可以设置 symmetrical=False
[Django-doc]:
class Account(models.Model):
username = models.CharField(max_length=100)
following = models.ManyToManyField(
'self', symmetrical=False, blank=True, related_name='followers'
)