Estoy construyendo una libreta de direcciones que incluye las relaciones entre entradas, etc. Tengo modelos separados para particulares, empresas, salas, y roles. En mi página de índice me gustaría enumerar todas las instancias de cada modelo y luego filtrarlas. Para que una persona pueda buscar y encontrar fácilmente una entrada. He sido capaz de enumerar un solo modelo con vistas genéricas y utilizar get_extra_context para mostrar un modelo más:Django pasar múltiples modelos para una plantilla
#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
También soy capaz de enumerar un único modelo usando una vista personalizada:
#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})
Aquí son los urls.py para estas dos pruebas: "¿Cómo puedo modificar esto para pasar más de un modelo para la plantilla"
(r'^$', views.object_list, {'model' : models.Individual}),
(r'^individuals/$',
IndividualListView.as_view(),
),
(r'^individuals/(?P<pk>\d+)/$',
IndividualDetailView.as_view(),
),
Así que mi pregunta es ¿Es posible? Todas las preguntas similares en StackOverflow solo se refieren a dos modelos (que se pueden resolver usando get_extra_context).
Gracias! Esto es exactamente lo que necesitaba. –
+1 fue sorprendentemente difícil encontrar esta información. ¡Gracias! –
Ojalá hubiera alguna explicación real. – kevr