2016-12-15 5 views
0

以下の例では、コンテキストのインデックス 'book_list'はどこから来ますか?ifは任意ですが、命名規則は何ですか?Djangoの一般的な詳細ビューでは、コンテキストのインデックスはどこから来ますか?

class PublisherDetail(DetailView): 

model = Publisher 

def get_context_data(self, **kwargs): 
    # Call the base implementation first to get a context 
    context = super(PublisherDetail, self).get_context_data(**kwargs) 
    # Add in a QuerySet of all the books 
    context['book_list'] = Book.objects.all() 
    return context 

答えて

1

この例では、変数名book_listは任意です。あなたはbooksまたは好きなものを代わりに使うことができます。

book_listを使用すると、ListViewと一致し、リストをテンプレートのコンテキストで<lowercase model name>_listとして利用できるようになります。詳細はmaking friendly template contextsのドキュメントを参照してください。

2

あなたは(_list)を参照している命名規則はListViewtemplate_name_suffixに基づいています。それはMultipleObjectTemplateResponseMixinから継承されます。

実際に

あなたはあなたの例に基づいて、この1のようなListViewを使用する場合:

class PublisherList(ListView): 

    model = Publisher 

...あなたはすべての出版社のクエリセットのためのテンプレートにpublisher_listを参照することができます。

例では、同じ命名規則を使用してデータベース内のすべての書籍のリストを含めていますが、必要に応じてそのコンテキスト変数(book_list)を呼び出すことができます。

関連する問題