В общем для моего приложения нужна возможность выводить значение переменной(queryset). Погуглив в интернете, понял, что нужно создать свой тег. Так же нашел документацию на эту тему, но к сожалению, мне это не помогло.
Функция тега
from django import template
from products.models import Genre
register = template.Library()
@register.simple_tag
def list_product(request):
return {'gerne':Genre.objects.all()}
Что вставляю в html
{% load list_product %}
{% for i in list_product%}
{{ i }}
{% endfor %}
Так же добавил в settings
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',
'home.template_tags.base_tag.list_product', # путь к моей папке
],
},
},
]
В INSTALLED_APPS приложение соответственно лежит.
Файл с функцией находится в myapp/home/template_tags.py так же рядом лежит файл __init__.py
Два для уже роюсь по вопросам и документации и , видимо чего-то недопонимаю.
Ловлю ошибку
TemplateSyntaxError at /
'list_product' is not a registered tag library. Must be one of:
Предполагаю, что что-то не так в INSTALLED_APPS
ps вставлять переменную нужно в базовый шаблон