给定这些模型:
class Event(models.Model):
name = models.CharField()
class Project(models.Model):
name = models.CharField()
class EventProject(models.Model):
event= models.ForeignKey(Event)
project= models.ForeignKey(Project)
有没有一种方法可以像这样获得每个Project
的所有Events
:使用属性project.events = [<array of Event>]
?
我发现了一个类似的问题,但其中一个表有members = models.ManyToManyField(Person, through='Membership')
关系,所以更容易做。我不能像相关问题中那样做,也不能添加关系,因为我不能更改模型。
它是直接的
Event.objects.filter(eventproject__project=project)
在Django中,通过ForeignKey进行过滤可以向前和向后工作。您可以使用小写的模型名称进行反向筛选。
https://docs.djangoproject.com/en/3.1/topics/db/queries/#lookups-跨越关系