我有两个模型:
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中做到这一点?
答案 0 :(得分:0)
尝试values_list
docs
F.objects.values_list('name', 'p__name')
答案 1 :(得分:0)
F.objects.filter(...).prefetch_related('p')