Ambiente: Django 2.2
- Código de exemplo:
from django.template.defaulttags import register
@register.filter(name='lookup')
def lookup(value, arg):
return value.get(arg)
Coloquei esse código em um arquivo chamado template_filters.py na minha pasta do projeto chamada portfoliomgr
Não importa onde você colocou o código do filtro, verifique se possui __init__.py nessa pasta
Adicione esse arquivo à seção de bibliotecas na seção de modelos no arquivo projectfolder / settings.py. Para mim, é portfoliomgr / settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'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':{
'template_filters': 'portfoliomgr.template_filters',
}
},
},
]
No seu código html, carregue a biblioteca
{% load template_filters %}