带有继承的 Django 消息



我在使用 Django 的消息框架时遇到了问题。我有以下课程:

class A(FormView):
    ...
class B(A):
    success_url = '/success/a'
    ...
class C(A):
    success_url = '/success/b'
    ...

当我尝试使用 Django 的消息框架执行以下操作时,我没有得到任何结果:

class A(SuccessMessageMixin, FormView):
    ...
class B(A):
    success_url = '/success/a'
    success_message = 'success a'
    ...
class C(A):
    success_url = '/success/b'
    success_message = 'success b'
    ...

但是,当这样的使用时,我会得到消息:

class A(FormView):
    ...
class B(SuccessMessageMixin, A):
    success_url = '/success/a'
    success_message = 'success a'

class C(SuccessMessageMixin, A):
    success_url = '/success/b'
    success_message = 'success b'
    ...

我得到很多类是A类的子类.有人知道如何将消息框架与继承一起使用吗?

SuccessMessageMixin覆盖

form_valid()并调用super(SuccessMessageMixin, self).form_valid()

从注释中,您将在自己的窗体视图中覆盖form_valid()并且不调用super.form_valid(),因此SuccessMessageMixin.form_valid()永远不会被调用。

最新更新