0

我有一个页面应显示事件和此事件的演示文稿。在我的代码中他们不相关(我仍然必须解决这个问题)。在主页上,它接收事件和演讲,认为是这样的:将多个视图传递给模板

views.py

class EventoView(ListView): 
    model = Evento 
    template_name = 'home.html' 
    context_object_name = 'evento_list' 
    queryset = Evento.objects.all().order_by('-data')[:1] 

class RegistroView(ListView): 
    model = Registro 
    template_name = 'home.html' 
    context_object_name = 'registro_list' 
    queryset = Registro.objects.all() 

的问题是,我只能通过事件对象,对象注册,其中显示索引的索引也必须通过,但只接受Django视图的url。

urls.py

urlpatterns = patterns('', 
    url(r'^$', EventoView.as_view(), name='home'), #I can't pass two views 
    url(r'^cadastro/', CriarRegistroView.as_view(), name='cadastro'), 
    url(r'^contato/', CriarContatoView.as_view(), name='contato'), 
    url(r'^sobre/', SobreView.as_view(), name='sobre'), 
    url(r'^admin/', include(admin.site.urls)), 
) 

我怎样才能解决这个问题?

谢谢。

回答

2

它看起来像你可以overrideListView.get_context_data

class RegistroView(ListView): 

    model = Evento 

    def get_context_data(self, **kwargs): 
     context = super(RegistroListView, self).get_context_data(**kwargs) 
     context['registros'] = Registro.objects.all() 
     context['eventos'] = Evento.objects.all().order_by('-data')[:1]    
     return context 

我没有与ListViews经验,所以我不知道如果我使用它,因为它是应该被使用,或者不

+1

这是'get_context_data'的预期目的。通过这样做,你不是在屠宰“ListView”。 – miki725

+0

@ dm035114,它的工作原理!谢谢 –

相关问题