2015-06-05 2 views
21

Я пытаюсь использовать Джанго встроенного фильтра «по умолчанию» с помощью этого кодаDjango шаблон фильтр Ошибка синтаксиса

{% load sekizai_tags static compress i18n %} 
[...] 
<title>{{ title|default:"nothing" }}</title> 

Но это дает мне следующее исключение

django.template.base.TemplateSyntaxError: default requires 2 arguments, 1 provided 

Я использую следующие настройки для моего шаблона Backend

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [ 
      str(APPS_DIR.path('templates')), 
     ], 
     'OPTIONS': { 
      'debug': DEBUG, 
      'loaders': [ 
       'django.template.loaders.filesystem.Loader', 
       'django.template.loaders.app_directories.Loader', 
      ], 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'allauth.account.context_processors.account', 
       'allauth.socialaccount.context_processors.socialaccount', 
       'django.template.context_processors.i18n', 
       'django.template.context_processors.media', 
       'django.template.context_processors.static', 
       'django.template.context_processors.tz', 
       'django.contrib.messages.context_processors.messages', 
       'sekizai.context_processors.sekizai', 
      ], 
     }, 
    }, 
] 

Мой редактор помечает код как недействительный, но я проверяю, как тысяча раз https://docs.djangoproject.com/en/1.8/ref/templates/builtins/

Где это дается в качестве примера:

{{ value|default:"nothing" }} 

Я также попытался изменить название заголовка вар, чтобы убедиться, что он не является зарезервированным ключевым словом.

+0

Читать это может помочь https://groups.google.com/forum/#!topic/django-users/ m4w-RNt-DOg – chandu

+1

неслучайно, что не помогло, так как я фактически использую цитаты для значений, «ничего» – Iwan1993

+0

Ненавижу, чтобы спросить ... но вы уверены, что линия является виновником? У вас есть другие фильтры или теги tempate в этом шаблоне? Можете ли вы показать больше своего шаблона в своем вопросе? – rnevius

ответ

1

Try:

{{ title|default_if_none:"nothing" }} 

default_if_none покажет заданную строку, если переменная не является 'None'.

по умолчанию отобразит строку, если переменная имеет значение ЛОЖЬ, то есть пустые строки, пустые списки и т.д.

Также убедитесь, что вы посылаете название переменную в вашем контексте, если вы не должны использовать default_if_none

31

Удостоверьтесь, что у вас нет места после толстой кишки.

Это правильно:

{{ title|default:"nothing" }} 

Это бросает исключение:

{{ title|default: "nothing" }} 
Смежные вопросы