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

时间:2019-04-03 06:45:55

标签: python django templates configuration

如果模板输入参数无效,有什么办法引发异常?在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()

1 个答案:

答案 0 :(得分:1)

在Django <= 1.9

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

在您的settings.py中。

在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