假设我们的Django应用程序中有两个模型:
class Member(models.Model):
name = models.CharField()
class Project(models.Model):
name = models.CharField()
通常,对于多对多字段,我会创建一个中间表,然后查询:
class ProjectMember(models.Model):
project = models.ForeignKey(Project)
member = models.ForeignKey(Member)
是否有一种方法可以检索查询集,以便只列出成员的项目?
我尝试了ProjectMember.objects.filter(member=member).only('project')
,但仍然得到ProjectMember对象列表,其中只有project
字段被填充。
我希望检索Project对象的列表。
1条答案
按热度按时间rsaldnfx1#
你可以通过查询两个连续的下划线(
__
)来查看关系,所以:但是,您的
ProjectMember
模型充当Member
和Project
之间多对多关系的连接表。您可以在Project
模型上使用以下命令生成**ManyToManyField
**[Django-doc]:然后,您可以使用以下过滤:
或者甚至: