django删除视图覆盖删除方法

时间:2015-10-12 08:56:43

标签: django

我正在使用删除视图,我想自定义删除操作。

在删除对象之前我需要做一些检查,如果是

检查未通过我想重定向到同一视图并显示匹配的

按摩(就像我可以使用form.add_error

在form_valid方法中做的那样)

并返回self.form_invalid(form))。

所以我有以下删除方法:

def delete(self, request, *args, **kwargs):
    if XXXX:
        ### add_error and return a massage ###
    else:
        return super(delete, self).delete(request, *args, **kwargs)  

我需要/可以在“if”中做什么来阻止删除并解释用户

问题是什么?

THX

1 个答案:

答案 0 :(得分:1)

为了防止删除,你只需要在if子句中调用super()。delete。

为了解释未执行删除的原因,您可以使用django消息(https://docs.djangoproject.com/en/1.8/ref/contrib/messages/

所以我认为你可以在你的if子句中使用这样的东西

messages.add_message(request, messages.WARNING, 'Object was not deleted')
return self.render_to_response(self.get_context_data())

您可以使用django messages文档中的代码访问消息文本: https://docs.djangoproject.com/en/1.8/ref/contrib/messages/#django.contrib.messages.get_messages