繁体   English   中英

如何在Django ManyToMany关系中返回两个相关模型的字段?

[英]How to return fields of both related models in a Django ManyToMany relation?

我有两个型号:

class P(mdoels.Model):
    name = models.CharField(null=False,max_length=120)
    ...

class F(mdoels.Model):
    name = models.CharField(null=False,max_length=120)
    ...
    p = models.ManyToManyField(P)

我需要这样的查询:

SELECT p.name, f.name
FROM f
JOIN f_p ON f.id = f_p.f_id
JOIN p ON p.id= f_p.p_id

我可以使用f.objects.filter() ,但它不返回p的字段,我只需要显示具有这两个名称的列表。

psql ,查询的工作方式与我的需要相同。 我怎么能在Django中这样做?

尝试values_list 文档

F.objects.values_list('name', 'p__name')

使用prefetch_related

F.objects.filter(...).prefetch_related('p')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM