我有两种型号的Site
和Metric
,Metric
有一个ForeignKey
到Site
。
我正在尝试获取一个同时具有Site.name
和Metric
属性的Metric
对象。
Metric.objects.all().select_related('site')
我这样做对吗?
发布于 2015-09-05 19:47:55
在查询集中,Django同时加载度量标准及其相关站点。
metrics = Metric.objects.all().select_related('site')
然后,可以在视图或模板中循环查询集,并通过site
外键访问站点属性。
for metric in metric:
print(metric.field1) # field on metric model
print(metric.site) # related site
print(metric.site.name) # name of related site
发布于 2015-09-05 19:17:08
select_related
只是一个减少SQL查询数量的优化。因此,Metric.objects.all().select_related('site')
将更有效地返回所有Metric
对象。在这里,您可以迭代Metric
查询集,并使用Site
进行操作。即。
my_first_metric = Metric.objects.all().select_related('site').first()
# my_first_metric.site.name will be the name of the site associated with that metric
https://stackoverflow.com/questions/32416707
复制相似问题