在Save上重定向到Django Admin中的新表单

时间:2010-07-07 17:30:44

标签: django django-models django-admin django-forms

您好我正在为我的公司创建一个故障单应用程序,我想将用户重定向到一个新表单,在那里他将指定他提供的诊断和解决方案。 我的管理员是 基本上,现在我的代码调用第一个表单,当创建的obj是新的或状态是打开的,并且当我的状态关闭时它调用ClosedForm。

我想要的是,当用户将状态从Open更改为Closed并保存ticekt时,他被重定向到ClosedForm

由于

class TicketFormClosed(ModelForm):
    class Meta:
        model = Ticket
        fields = ('status','call_sheet_number','diagnose','solution','call_attend_date',)

class TicketForm(ModelForm):
    class Meta:
        model = Ticket
        exclude = ('call_sheet_number','diagnose','solution','call_attend_date',)

class TicketAdmin(admin.ModelAdmin):

    def get_form(self, request, obj=None, **kwargs):
        form = super(TicketAdmin, self).get_form(request, obj, **kwargs)
        if obj == None or obj.status=='Open':
            form = TicketForm   
        else:
            form = TicketFormClosed
        return form

1 个答案:

答案 0 :(得分:0)

查看admin.ModelAdmin的源代码。你会发现可重叠的钩子可以重定向。

例如,在

中搜索HttpResponseRedirect Django的/的contrib /管理/ options.py 并且你会看到默认流程正在播放。