2015-06-05 16 views
21

Próbuję użyć Django zbudowany w „default” filtra przy użyciu tego koduDjango Template Filtr Błąd składni

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

Ale to daje mi następujący wyjątek

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

Używam następujące ustawienia dla mojego szablonu 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', 
      ], 
     }, 
    }, 
] 

Mój redaktor oznacza kod jako nieważny, ale sprawdzam jak tysiąc Czasy https://docs.djangoproject.com/en/1.8/ref/templates/builtins/

Gdzie ta jest podawana jako przykład:

{{ value|default:"nothing" }} 

Próbowałem również zmienić nazwę tytułu var, aby upewnić się, że nie jest zarezerwowanym słowem kluczowym.

+0

Czytaj Może to pomóc https://groups.google.com/forum/#!topic/django-users/ m4w-RNt-DOg – chandu

+1

niezbyt dobrze, że to nie pomogło, ponieważ w rzeczywistości używam cytatów dla wartości, "nic" – Iwan1993

+0

Nienawidzę pytać ... ale czy jesteś pewien, że linia jest winowajcą? Czy w tym szablonie są jakieś inne filtry lub znaczniki tempate? Czy możesz pokazać więcej swojego szablonu w swoim pytaniu? – rnevius

Odpowiedz

1

Spróbuj:

{{ title|default_if_none:"nothing" }} 

default_if_none wyświetli podany ciąg jeśli zmienna jest 'brak'.

domyślny wyświetli ciąg jeśli zmienna ma wartość False, czyli pustych strun, pustych list itp

Również upewnić się wysłać tytuł zmienną w swoim kontekście, jeśli nie musisz używać default_if_none

31

Upewnij się, że nie masz spacji po dwukropku.

ta jest poprawna:

{{ title|default:"nothing" }} 

ta zgłasza wyjątek:

{{ title|default: "nothing" }}