Mám malú typografiu súvisiacu s templatetag knižnicou, ktorú používam takmer na každej stránke. Práve teraz ju potrebujem načítať pre každú šablónu
{% load nbsp %}
Existuje spôsob, ako ho načítať "globálne" pre všetky pohľady a šablóny naraz? Vloženie štítku zaťaženia do základnej šablóny nefunguje.
odpovede:
69 pre odpoveď č. 1Existuje add_to_builtins
metóda v django.template.loader
, Jednoducho ju zadajte názov modulu šablón (ako reťazec).
from django.template.loader import add_to_builtins
add_to_builtins("myapp.templatetags.mytagslib")
teraz mytagslib
je k dispozícii automaticky v ľubovoľnej šablóne.
29 pre odpoveď č. 2
To sa zmení s uvoľnením Django 1.9.
Od 1.9, správny prístup bude konfigurovať tagy šablón a filtre pod builtins
kľúč z OPTIONS
- pozri nižšie uvedený príklad:
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [],
"APP_DIRS": True,
"OPTIONS": {
"builtins": ["myapp.builtins"],
},
},
]
podrobnosti: https://docs.djangoproject.com/en/dev/releases/1.9/#django-template-base-add-to-builtins-is-removed
27 pre odpoveď č. 3
V django 1.7 len nahradiť from django.template.base import add_to_builtins
5 pre odpoveď č. 4
V Django 1.9 je libraries
slovník štítkov a tečkované cesty Pythonu modulov štítkových šablón na registráciu s motormi šablón. Môžete ho použiť na pridanie nových knižníc alebo poskytnutie alternatívnych štítkov pre existujúce.
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.debug",
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
"libraries": { # Adding this section should work around the issue.
"custom_tags" : "myapp.templatetags.custom_tags",#to add new tags module.
"i18n" : "myapp.templatetags.custom_i18n", #to replace exsiting tags modile
},
},
},
]