上下文資料

有時,你的模板需要更多資訊。例如,我們希望將使用者放在頁面的標題中,並在登出連結旁邊新增指向其配置檔案的連結。在這些情況下,請使用 get_context_data 方法。

views.py

class BookView(DetailView):
    template_name = "book.html"

    def get_context_data(self, **kwargs)
        """ get_context_data let you fill the template context """
        context = super(BookView, self).get_context_data(**kwargs)
        # Get Related publishers
        context['publishers'] = self.object.publishers.filter(is_active=True)
        return context

你需要在超類上呼叫 get_context_data 方法,它將返回預設的上下文例項。你新增到此詞典的任何專案都可供模板使用。

book.html

<h3>Active publishers</h3>
<ul>
  {% for publisher in publishers %}
    <li>{{ publisher.name }}</li>
  {% endfor %}
</ul>