我想添加一些自定义模板标签。但是,{% load userfilters %} => 'load' 标签不起作用。
settings.py
# project/settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [
os.path.join(BASE_DIR, 'html/jinja2'),
],
'APP_DIRS': True,
'OPTIONS': {
'environment': 'accountv1.jinja2.environment',
},
},
]
jinja2.py
# project/jinja2.py
from django.templatetags.static import static
from django.urls import reverse
from jinja2 import Environment
def environment(**options):
env = Environment(**options)
env.globals.update({
'static': static,
'url': reverse,
})
return env
应用程序/模板标签/userfilters.py
from django import template
register = template.Library()
@register.filter(name='a')
def a(value):
return 1
views.py
# use django-rest-framework
class IndexView(generics.GenericAPIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'index.html'
def get(self, request, *args, **kwargs):
return Response({'name': 'max'})
演示.html
不管用
{% load userfilters %}
<!-- custom filter -->
{{ name|a }}
是工作
<!-- default filter -->
{{ name|title }}
我希望能解决这个问题。
Helenr
相关分类