测试存在时VariableDoesNotExist错误

时间:2016-05-12 12:42:29

标签: django django-templates

在我的base.html中,我希望在用户出现在大多数网页上时呈现某些菜单,但是有一些菜单可以用来呈现,所以我有类似的东西:

{% if menu_context %}
   <ul class="menu">...</ul>
{% endif %}

这很好用,我的大多数视图都有一个基类来添加这个变量。问题是在没有设置的页面上,我得到:

[2016-05-12 13:37:44,819 base] DEBUG: Exception while resolving variable 'menu_context' in template 'index.html'.
Traceback (most recent call last):
  File "/.../env/lib/python2.7/site-packages/django/template/base.py", line 905, in _resolve_lookup
    (bit, current))  # missing attribute
VariableDoesNotExist: Failed lookup for key [menu_context] in u'[...]'

有没有办法防止这种情况发生?

或者,是否有办法防止这些特定的日志语句。我的日志配置是:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'simple': {
            'format': '[%(asctime)s %(module)s] %(levelname)s: %(message)s'
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'simple',
        },
        'null': {
            'level': 'DEBUG',
            'class': 'logging.NullHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': 'DEBUG',
        },
        'django.db.backends': {
            'handlers': ['null'],  # Quiet by default!
            'propagate': False,
            'level': 'DEBUG',
        },
        'django.template.base': {
            'handlers': ['null'],  # Quiet by default!
            'propagate': False,
            'level': 'DEBUG',
        },
    },
}

......但这似乎并没有压制他们!

0 个答案:

没有答案