エントリ間の関係などを含むアドレス帳を作成しています。個人、会社、会場、および役割に対して個別のモデルがあります。インデックス ページで、各モデルのすべてのインスタンスを一覧表示し、それらをフィルター処理したいと考えています。人がエントリを簡単に検索して見つけることができるようにします。汎用ビューを使用して 1 つのモデルを一覧表示し、get_extra_context を使用してもう 1 つのモデルを表示することができました。
#views.py
class IndividualListView(ListView):
context_object_name = "individual_list"
queryset = Individual.objects.all()
template_name='contacts/individuals/individual_list.html'
class IndividualDetailView(DetailView):
context_object_name = 'individual_detail'
queryset = Individual.objects.all()
template_name='contacts/individuals/individual_details.html'
def get_context_data(self, **kwargs):
context = super(IndividualDetailView, self).get_context_data(**kwargs)
context['role'] = Role.objects.all()
return context
カスタム ビューを使用して単一のモデルを一覧表示することもできます。
#views.py
def object_list(request, model):
obj_list = model.objects.all()
template_name = 'contacts/index.html'
return render_to_response(template_name, {'object_list': obj_list})
これらのテストの両方の urls.py は次のとおりです。
(r'^$', views.object_list, {'model' : models.Individual}),
(r'^individuals/$',
IndividualListView.as_view(),
),
(r'^individuals/(?P<pk>\d+)/$',
IndividualDetailView.as_view(),
),
だから私の質問は、「これを変更して、複数のモデルをテンプレートに渡すにはどうすればよいですか?」ということです。それは可能ですか?StackOverflow に関する同様の質問はすべて、2 つのモデルについてのみ質問しています (これは get_extra_context を使用して解決できます)。