如何组合django“prefetch_related”和“values”方法?

时间:2017-03-27 19:03:20

标签: python django

如何在组合中应用“prefetch_related”和“values”方法?

以前,我有以下代码。限制此查询中的字段是性能优化所必需的。

Organizations.objects.values('id','name').order_by('name')

现在,我需要预取其关联并使用“prefetch_related”方法将其附加到序列化程序中。

Organizations.objects.prefetch_related('locations').order_by('name')

在这里,我似乎找不到使用“prefetch_related”后限制字段的方法。

我尝试了以下操作,但是这样做时序列化程序没有看到相关的“位置”。

Organizations.objects.prefetch_related('locations').values("id", "name").order_by('name')

模型骨架:

class Organizations(models.Model):
        name = models.CharField(max_length=40)

    class Location(models.Model):
        name = models.CharField(max_length=50)
        organization = models.ForeignKey(Organizations, to_field="name", db_column="organization_name", related_name='locations')
        class Meta:
            db_table = u'locations'

1 个答案:

答案 0 :(得分:2)

如果您担心自己的应用效果,请使用only()来限制检索到的字段数。请参阅reference