1

特定のアイテムについて、別のテーブルから写真を引き出す最良の方法を決定するのに苦労しています。

django には、次の 2 つのテーブルがあります。

class item(models.Model):
    title..
    descr..

class item_pic(models.Model):
    item=models.ForeignKey(item)
    pic=models.ImageField...

item.title と item.descr を div に表示していますが、同じ div で写真を取得したいと考えています。

これまでのところ、アイテムの写真のリストを返す item|getPics のようなテンプレート フィルターを作成してみました。

{% for pic in item|getPics %} <img src="/uploads/{{pic.pic}}"> {%endfor%}

あまりにも多くのSQLクエリを起動していたので、最終的にはこれを取り除きました

今、私は ajax を介して写真を引き出すのを終えました。ここでの唯一の欠点は、画像が表示されるまでに時間がかかることです。そして、同じ数のSQLクエリがあると思います(バックグラウンドで起動されるため、djangoデバッグツールバーには表示されません)。

これにどのようにアプローチしますか?ヒントをありがとう!

4

1 に答える 1

0

select_related()( docs ) を使用して、画像オブジェクトをアイテムと一緒に取得する必要があります。

次のようになります。

item = item.objects.select_related().get(...)

これは、item_pics.

最後の注意として、これは Python/Django の慣例であるため、クラスの名前を大文字にすることをお勧めします。

于 2012-06-15T09:11:23.157 に答える