Django 检查模板中是否存在变量,如果不存在,则不会在记录器中导致错误';T
我已在Django 检查模板中是否存在变量,如果不存在,则不会在记录器中导致错误';T,django,django-templates,django-template-filters,Django,Django Templates,Django Template Filters,我已在settings.py中的日志记录中启用了'level':'DEBUG' 我知道,检查模板中是否存在变量的建议解决方案是使用if-template标记 {% if variable %} 这是在文档中提出的,询问如何检查变量是否存在的问题被作为主题关闭,并指向该方向 提供的另一个解决方案是与无进行比较 {$ if variable is not None %} 但是,在这两种情况下,虽然它在用户端工作正常,但记录器会将其保存为KeyError,使我的日志文件杂乱无章 如何避免此问题?您
settings.py中的日志记录中启用了'level':'DEBUG'
我知道,检查模板中是否存在变量的建议解决方案是使用if-template标记
{% if variable %}
这是在文档中提出的,询问如何检查变量是否存在的问题被作为主题关闭,并指向该方向
提供的另一个解决方案是与无进行比较
{$ if variable is not None %}
但是,在这两种情况下,虽然它在用户端工作正常,但记录器会将其保存为KeyError
,使我的日志文件杂乱无章
如何避免此问题?您可以将名为django.template
的记录器的日志级别设置为INFO
或更高级别,以禁用这些日志消息。我使用django筛选器正确解决此问题:
在myapp/templatetags/filters.py
I中添加:
@register.simple\u标记(接受上下文=True)
def var_存在(上下文、名称):
dicts=context.dicts#dicts数组
如果听写:
对于dicts中的d:
如果名称在d中:
返回真值
返回错误
在html模板中:
{%load filters%}
...
{%var_存在“project”,因为project_存在%}
{%如果项目_存在%}
...
{%endif}
在这种情况下,您将跳过模板中所有真正有意义的错误