如何从模型中返回错误消息?

时间:2012-03-02 10:37:49

标签: django model-view-controller view model business-logic

作为对此question的补充,如果业务逻辑应该在模型中,我该如何从模型中返回错误消息?

def save(self, *args, **kwargs):
    if <some condition>:
        #return some error message to the view or template

2 个答案:

答案 0 :(得分:4)

Pastylegs是正确的,但你不应该在save方法中做那种逻辑。 Django在保存之前有一个validating model instances的内置系统 - 您应该使用它,并在必要时引发ValidationError

答案 1 :(得分:1)

引发异常是报告程序逻辑错误的方法(业务逻辑中的错误&#39;),这就是您所说的。您可以提出异常,就像pastylegs提出的那样(请注意SomeException只是一个占位符):

from django.core.exceptions import SomeException

def save(self, *args, **kwargs):
    if <some condition>:
        raise SomeException('your message here')

你可以在这里找到可用的例外fpr django:https://docs.djangoproject.com/en/1.3/ref/exceptions/,另外你也可以使用标准的python例外,你可以在这里找到文档:http://docs.python.org/library/exceptions.html

我建议你找一个描述你问题的例外情况,否则如果错误出现在几周内,当你不记得你现在在做什么时,你会感到非常困惑。