[英]How to combine django "prefetch_related" and "values" methods?
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'
如果您担心应用程序的性能,请使用only()
来限制检索的字段数。 请参阅参考资料。
在上面的示例中,这将是:
Organizations.objects.prefetch_related('locations').only('id', 'name').order_by('name')
这将导致两个查询:
SELECT id, name FROM organizations;
SELECT * from locations WHERE organization_name = <whatever is seen before>;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.