Django.template.exceptions.TemplateSyntaxError: Недопустимый блочный тег в строке 24: 'trans'. Вы забыли зарегистрировать или загрузить этот тег?
Мой вопрос связан с приложением DJANGO
После разработки кода с использованием возможности локали {% trans 'value' %} тег в правильном порядке все работает нормально, пока я не включил DEBUG = False в settings.py.Следующая ошибка:
django.template.exceptions.TemplateSyntaxError: Invalid block tag on line 24: 'trans'. Did you forget to register or load this tag?
Приложение заблокировано, показывая следующее сообщение на экране.
A server error occurred. Please contact the administrator.
На сервере появилось следующее сообщение.
Traceback (most recent call last):
File "C:\Python38\lib\wsgiref\handlers.py", line 137, in run
self.result = application(self.environ, self.start_response)
File "C:\Python38\lib\site-packages\django\core\handlers\wsgi.py", line 133, in __call__
response = self.get_response(request)
File "C:\Python38\lib\site-packages\django\core\handlers\base.py", line 130, in get_response
response = self._middleware_chain(request)
File "C:\Python38\lib\site-packages\django\core\handlers\exception.py", line 49, in inner
response = response_for_exception(request, exc)
File "C:\Python38\lib\site-packages\django\core\handlers\exception.py", line 103, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "C:\Python38\lib\site-packages\django\core\handlers\exception.py", line 142, in handle_uncaught_exception
return callback(request, **param_dict)
File "C:\Python38\lib\site-packages\django\utils\decorators.py", line 130, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "C:\Python38\lib\site-packages\django\views\defaults.py", line 88, in server_error
template = loader.get_template(template_name)
File "C:\Python38\lib\site-packages\django\template\loader.py", line 15, in get_template
return engine.get_template(template_name)
File "C:\Python38\lib\site-packages\django\template\backends\django.py", line 34, in get_template
return Template(self.engine.get_template(template_name), self)
File "C:\Python38\lib\site-packages\django\template\engine.py", line 143, in get_template
template, origin = self.find_template(template_name)
File "C:\Python38\lib\site-packages\django\template\engine.py", line 125, in find_template
template = loader.get_template(name, skip=skip)
File "C:\Python38\lib\site-packages\django\template\loaders\cached.py", line 53, in get_template
template = super().get_template(template_name, skip)
File "C:\Python38\lib\site-packages\django\template\loaders\base.py", line 29, in get_template
return Template(
File "C:\Python38\lib\site-packages\django\template\base.py", line 155, in __init__
self.nodelist = self.compile_nodelist()
File "C:\Python38\lib\site-packages\django\template\base.py", line 193, in compile_nodelist
return parser.parse()
File "C:\Python38\lib\site-packages\django\template\base.py", line 472, in parse
self.invalid_block_tag(token, command, parse_until)
File "C:\Python38\lib\site-packages\django\template\base.py", line 531, in invalid_block_tag
raise self.error(
django.template.exceptions.TemplateSyntaxError: Invalid block tag on line 24: 'trans'. Did you forget to register or load this tag?
Вот мои settings.py
Вот пример моего шаблона base.html.
{% load i18n %}
<!DOCTYPE html>
{% load pwa %}
{% load static %}
<html lang="{% trans "en" %}">
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
</body>
</html>
В коде есть несколько тегов с {% trans 'value' %} и все синтакс корректны.
Есть идеи по этому вопросу?
Вот решение, которое я нашел.
- После переключения
DEBUG=False
вsettings.py
, страницы ошибок будут включены в процессrunserver
. В первой строке моего шаблона 404.html и шаблона 500.html я забыл включить{% load i18n %}
. Я включил это и готово. Способ определить это был предложен @BrianDestura, который предложил изменить тегtrans
наtranslate
, что я и сделал. Спасибо @BrianDestura. .
- После изменения, в производственной конфигурации необходимо выполнить
python manage.py collectstatic
для обновления путей. Это интересно, потому что в режимеDebug
все ссылки были в порядке. Спасибо @raphael за ваш вклад здесь.Хорошую ссылку на отсутствующие файлы я нашел в (ValueError: Missing staticfiles manifest entry for 'favicon.ico')