私は、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
、結果を取得するためのデータベース呼び出しが 1 つあることがわかります。SELECT ••• FROM "mydb_computer"/
しかし、ストア名を取得するために、さらに多くのデータベース呼び出し (結果ごとに 1 つ) がありますSELECT ••• FROM "mydb_store" WHERE "computer_store"."id" = 27
。
これらの複数のデータベース呼び出しを回避するために、ストア名をアイテムのプロパティにする方法はありますか?