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()

問題は、登録のオブジェクトであるEventオブジェクトのみを渡すことができることです。これは、講義のインデックスも渡す必要があることを示していますが、URLのDjangoビューのみを受け入れます。

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)),
)

どうすればこの問題を解決できますか?

ありがとう。

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 に答える