如何使用prefetch_related获取具有ForeignKey关系的对象的名称字段



我有两种型号:

class ModelA(models.Model):
name = models.CharField()
class ModelB(models.Model):
A = models.ForeignKey(ModelA, related_name="links")
name = models.CharField()

在我的模板中,我想通过ForeignKey打印出与每个ModelA对象关联的每个对象的"名称",我这样做就像这个

{% for a in modela_list %}
<p>{{ a.name }} </p>
{% for link in modela_list.links.all % }
<p>Link name: {{ link.name }} </p>
{% endfor %}
{% endfor %}

虽然这确实有效,但据我所知,它效率非常低,而且速度非常慢。如何使用prefetch_related使其更好?

在您的视图中:

modela_list = ModelA.objects.prefetch_related('links').filter(...)

然后将其发送到您的上下文中。

最新更新