我对一些带有 ForeignKey 的 Django 模型进行了查询,我注意到这意味着有多个数据库调用,这可能不是必需的。
这是我的模型:
class Store(models.Model):
name = models.CharField(max_length=100)
class Computer(models.Model):
model = models.CharField(max_length=500)
store = models.ForeignKey(Store)
我的观点:
results = Computer.objects.filter(model=model)
这是我的模板:
{% for result in results %}
<li class="result">
{{ result.name }} from {{ result.store.name }}
</li>
{% endfor %}
使用django-debug-toolbar
我可以看到有一个数据库调用来获取结果:SELECT ••• FROM "mydb_computer"/
正如我所期望的那样。
但是还有更多的数据库调用(每个结果一个)来获取商店名称:SELECT ••• FROM "mydb_store" WHERE "computer_store"."id" = 27
等等。
有什么方法可以让商店名称成为项目的属性,以避免这些多个数据库调用?