如果输入参数在Django模板中无效,如何抛出异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果输入参数在Django模板中无效,如何抛出异常相关的知识,希望对你有一定的参考价值。

如果模板输入参数无效,有没有办法抛出异常?在django旧版本中,我们可以像下面的代码那样做。但是最新的django版本怎么样?有一个选项可以设置string_if_invalid ='string',但我们需要为此抛出异常的唯一原因是我们显然不希望邮件服务器向客户发送垃圾邮件。

谢谢。

# settings.py in old versions
class InvalidVarException(object):
    def __mod__(self, missing):
        try:
            missing_str=unicode(missing)
        except:
            missing_str='Failed to create string representation'
        raise Exception('Unknown template variable %r %s' % (missing, missing_str))
    def __contains__(self, search):
        if search=='%s':
            return True
        return False

TEMPLATE_DEBUG=True
TEMPLATE_STRING_IF_INVALID = InvalidVarException()
答案

In Django<=1.9

TEMPLATE_STRING_IF_INVALID = 'DEBUG WARNING: undefined template variable [%s] not found'

在您的settings.py中。

In Django>=1.10

string_if_invalid = 'DEBUG WARNING: undefined template variable [%s] not found'

Also check this link about invalid template variables

And this link about django backend template engine

以上是关于如果输入参数在Django模板中无效,如何抛出异常的主要内容,如果未能解决你的问题,请参考以下文章

从客户端的角度来看,对于有效的无效输入抛出哪个异常

事务场景中,抛出异常被catch后,如果需要回滚,一定要手动回滚事务

如何在扩展中抛出异常?

Django - error_403() 得到了一个意外的关键字参数“异常”

如果仅在模板中立即给出错误输入,如何在 Django 模板中显示表单错误?

10.异常处理自定义异常断言