0

我有一个页面应该显示一个事件和这个事件的演示文稿。在我的代码中,它们不相关(我仍然需要修复它)。在接收事件和讲座的主页上,视图是这样的:

视图.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。

网址.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)),
)

我怎么解决这个问题?

谢谢。

4

1 回答 1

3

看起来你可以覆盖 ListView.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所以我不知道我是否按照应该使用的方式使用它

于 2013-01-23T15:04:13.577 回答