@rm_root

Django 3, нужна помощь с регистрацией шаблонных тегов, как это реализовать?

вот статья но у меня выдает ошибку ?

я знаю что можно это сделать через вьюшку, не пишите пожалуйста про это, меня интересует этот способ

задача
мне нужно создать функцию которая возвращает из класса (name)
и когда я в шаблоне я добавляю {% load example %} я смог бы написать {{ example_method }} и функция бы возвращала строку из поля name,

я создал как в статье templatetags/poll_extrax.py.
приложения в settings зарегана.
5ee0e2f72ecdd680922858.png

в шаблоне {% load poll_extras %}
код в poll_extrax.py
from django import template
from ..models import NameCinema

register = template.Library()

@register.simple_tag
def namecinema():
    value = NameCinema.objects.all()[0].name
    return value


ошибка консоль
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "C:\Users\reabk\Desktop\aaa\cinemax-django\venv\lib\site-packages\django\urls\resolvers.py", line 590, in url_patterns
    iter(patterns)
TypeError: 'module' object is not iterable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\python36\lib\threading.py", line 916, in _bootstrap_inner
    self.run()
  File "c:\python36\lib\threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\reabk\Desktop\aaa\cinemax-django\venv\lib\site-packages\django\utils\autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\reabk\Desktop\aaa\cinemax-django\venv\lib\site-packages\django\core\management\commands\runserver.py", line 117, in inner_run
    self.check(display_num_errors=True)
  File "C:\Users\reabk\Desktop\aaa\cinemax-django\venv\lib\site-packages\django\core\management\base.py", line 395, in check
    include_deployment_checks=include_deployment_checks,
  File "C:\Users\reabk\Desktop\aaa\cinemax-django\venv\lib\site-packages\django\core\management\base.py", line 382, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:\Users\reabk\Desktop\aaa\cinemax-django\venv\lib\site-packages\django\core\checks\registry.py", line 72, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:\Users\reabk\Desktop\aaa\cinemax-django\venv\lib\site-packages\django\core\checks\urls.py", line 40, in check_url_namespaces_unique
    all_namespaces = _load_all_namespaces(resolver)
  File "C:\Users\reabk\Desktop\aaa\cinemax-django\venv\lib\site-packages\django\core\checks\urls.py", line 57, in _load_all_namespaces
    url_patterns = getattr(resolver, 'url_patterns', [])
  File "C:\Users\reabk\Desktop\aaa\cinemax-django\venv\lib\site-packages\django\utils\functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\reabk\Desktop\aaa\cinemax-django\venv\lib\site-packages\django\urls\resolvers.py", line 597, in url_patterns
    raise ImproperlyConfigured(msg.format(name=self.urlconf_name))
django.core.exceptions.ImproperlyConfigured: The included URLconf 'cinemax_project1.urls' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by 
a circular import.
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
@register.simple_tag
def namecinema():
    name_cinema = NameCinema.objects.first()
    if name_cinema:
        return name_cinema.name
    return ''

Попробуйте переписать тэг вот таким образом
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы