1

私は、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

これらの複数のデータベース呼び出しを回避するために、ストア名をアイテムのプロパティにする方法はありますか?

4

1 に答える 1