私は、エントリ間の関係などを含むアドレス帳を構築しています。私は、個人、企業、会場、および役割について別々のモデルを持っています。私のインデックスページでは、各モデルのすべてのインスタンスをリストし、それらをフィルタリングしたいと思います。人が簡単に検索してエントリを見つけることができるようにします。私は汎用ビューを使用して単一のモデルをリストし、1つの以上のモデルを表示するためにget_extra_context使用することができました:Django複数のモデルを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を使用して解決できます)。私はあなたがあなたのobject_list
ビューを削除示唆
ありがとうございました!これはまさに私が必要としていたものです。 –
+1この情報を見つけるのは驚くほど困難でした。ありがとう! –
実際の説明がありましたら幸いです。 – kevr