我有一个 Project 模型,它有一个先决条件属性,它是一个链接到其他项目的 ManyToMany 字段。也就是说,每个项目可以有 0+ 个项目必须完成才能完成。
class Project(models.Model):
title = models.CharField(max_length=200)
prequisites = models.ManyToManyField('self', null=True, blank=True)
我如何返回该项目的先决条件所有项目?我想做这样的事情:
project_a = Project.objects.get(title="My Cool Project")
for pre_requisite in project_a.prequisites:
# do something with pre_requisite
但project_a.prequisites
返回一个ManyRelatedManager
对象。特殊的 _set 属性似乎也不起作用:
project_a.prequisites_set
AttributeError: 'Project' object has no attribute 'prequisites_set'
我正在考虑在另一个模型中对先决条件进行建模:
class ProjectPrequisite(models.Model):
project = models.ForeignKey(Project)
prequisite = models.ForeignKey(Project)
但我宁愿以正确的方式做事,如果你明白我的意思的话。