Django,queryset返回许多自我

Django,queryset返回许多自我,django,many-to-many,django-queryset,Django,Many To Many,Django Queryset,遵循常规的manytomany查询集逻辑会给我带来错误。我想,因为它与自我有关,我可能需要做一些额外的魔法,但我不知道是什么魔法 型号: class Entry(models.Model): title = models.CharField(max_length=100, verbose_name='title') related = models.ManyToManyField('self', related_name='related_entries',

遵循常规的manytomany查询集逻辑会给我带来错误。我想,因为它与自我有关,我可能需要做一些额外的魔法,但我不知道是什么魔法

型号:

class Entry(models.Model):
    title   =   models.CharField(max_length=100, verbose_name='title')
    related     =   models.ManyToManyField('self', related_name='related_entries', blank=True)
查询集:

entry = Entry.objects.get(pk=1)
related = entry.related_entries.all()

错误:'Entry'对象没有属性“related\u entries”

查看文档以获取
ManyToManyField
的参数:

当Django处理这个模型时,它会识别出它自己有一个ManyToManyField,因此,它不会向person类添加person\u set属性。相反,假设ManyToManyField是对称的——也就是说,如果我是你的朋友,那么你就是我的朋友

如果不希望在与self的多对多关系中使用对称,请将“对称”设置为False。这将迫使Django为反向关系添加描述符,从而允许多个域关系是非对称的


因此,为了使用
相关的\u名称
,将
symmetric=False

设置为正确,现在它停止向我返回错误。但现在我有两个条目。说EntryA&EntryB。当EntryA将EntryB作为相关的\u条目时,调用entry.related\u entries.all()不会给我任何结果。但是当EntryA同时将EntryB和EntryA(本身)作为相关的_项时,调用entry.related_entries.all()只返回我的EntryA,而不返回EntryB。Mindbogledkasper:在这种情况下,您希望它们是对称的:只需删除
相关的\u名称
,然后使用
entry.related.all()