1 回答

TA貢獻1772條經(jīng)驗 獲得超8個贊
如果您創(chuàng)建一個ForeignKey
,Django 將自動生成一個反向關(guān)系來訪問(在本例中)BookCover
特定的相關(guān) s?Book
。由于您沒有指定related_name=…
參數(shù) [Django-doc],因此該關(guān)系的名稱為modelname_set
,因此在本例中為bookcover_set
。
在模板中,您可以通過以下方式訪問書籍的書籍封面:
{% for book in books %}
? ? {{ book.title }}
? ? {% for cover in book.bookcover_set.all %}
? ? ? ? <img src="{{ cover.covers.url }}">
? ? {% endfor %}
{% endfor %}
然而,這將導(dǎo)致N+1問題。您可以使用.prefetch_related(…)
[Django-doc]來避免這種情況:
class BookListView(ListView):
? ? queryset = Booklist.objects.prefetch_related('bookcover_set')
? ? template_name = 'home/index.html'
? ? context_object_name = 'books'
? ? ordering = ['-date_posted']?
添加回答
舉報