Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 检查模板中是否存在变量,如果不存在,则不会在记录器中导致错误';T_Django_Django Templates_Django Template Filters - Fatal编程技术网

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}

在这种情况下,您将跳过模板中所有真正有意义的错误