如何使用HttpResponseRedirect指示类名?

时间:2015-07-07 06:56:09

标签: python django httpresponse

我的模特名为Tour。此模型包含类InboundOutboundEducation。 对于每种旅游类型,我在管理面板中制作了自定义页面。为此,我覆盖了url并在admin.py文件中创建了视图。每个视图都有formset。 所以当我提交formset时,浏览器会显示POST消息。要解决此问题,请将HttpResponseRedirectreverse()一起使用。

我的问题是,当我提交OutboundEducation类的formset时,我的视图会返回Inbound类的视图。我认为这是因为每个类中的视图都具有相同的名称。我试图将它们重命名为独特的(如def five_destinations_inbound等),但它没有帮助。

所以我的问题是如何在HttpResponseRedirect中指明班级名称?还是有其他解决方案吗? 我的admin.py代码:

class InboundAdmin(TranslationAdmin, ListView):
    model = Inbound

    def get_urls(self):
        urls = super(InboundAdmin, self).get_urls()
        my_urls = patterns('',
                           url(r'^five_destinations/$',
                               self.admin_site.admin_view(self.five_destinations),
                               name='five_destinations')
                           )
        return my_urls + urls

    def five_destinations(self, request, template='admin/tour/inbound/five_destination.html'):
        five_destination_formset = modelformset_factory(FiveDestinationsInbound, form=FiveDestinationInboundForm,
                                                        extra=3, max_num=3)
        if request.method == 'POST':
            formset = five_destination_formset(request.POST, request.FILES)
            formset.save(commit=False)
            if formset.is_valid():
                # some code, some logic
                formset.save()
                return HttpResponseRedirect(reverse('admin:five_destinations'))
        else:
            formset = five_destination_formset()
        return render(request, template, locals())


class OutboundAdmin(TranslationAdmin):
    model = Outbound

    def get_urls(self):
        urls = super(OutboundAdmin, self).get_urls()
        my_urls = patterns('',
                           url(r'^five_destinations/$',
                               self.admin_site.admin_view(self.five_destinations),
                               name='five_destinations')
                           )
        return my_urls + urls

    def five_destinations(self, request, template='admin/tour/outbound/five_destination.html'):
        five_destination_formset = modelformset_factory(FiveDestinationsOutbound, form=FiveDestinationOutboundForm,
                                                        extra=3, max_num=3)
        if request.method == 'POST':
            formset = five_destination_formset(request.POST, request.FILES)
            formset.save(commit=False)
            if formset.is_valid():
                # some code, some logic
                formset.save()
                return HttpResponseRedirect(reverse('admin:five_destinations'))
        else:
            formset = five_destination_formset()
        return render(request, template, locals())


class EducationAdmin(TranslationAdmin):
    model = Education

    def get_urls(self):
        urls = super(EducationAdmin, self).get_urls()
        my_urls = patterns('',
                           url(r'^five_destinations/$',
                               self.admin_site.admin_view(self.five_destinations),
                               name='five_destinations')
                           )
        return my_urls + urls

    def five_destinations(self, request, template='admin/tour/outbound/five_destination.html'):
        five_destination_formset = modelformset_factory(FiveDestinationsEducation, form=FiveDestinationEducationForm,
                                                        extra=3, max_num=3)
        if request.method == 'POST':
            formset = five_destination_formset(request.POST, request.FILES)
            formset.save(commit=False)
            if formset.is_valid():
                # some code, some logic
                formset.save()
                return HttpResponseRedirect(reverse('admin:five_destinations'))
        else:
            formset = five_destination_formset()
        return render(request, template, locals())

0 个答案:

没有答案