Django 过滤多对多关系而不带多对多字段"through"关系



给定这些模型:

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-跨越关系

相关内容

  • 没有找到相关文章

最新更新