TemplateSyntaxError после добавления темы Django Admin с помощью модуля Jazzmin
Я добавил тему админ-панели Django в свой проект, используя модуль django-jazzmin. Изначально она работает нормально, но когда я пытаюсь получить доступ к некоторым опциям в панели администратора (например, "Пользователи" или "Профиль"), я сталкиваюсь со следующей ошибкой:
TemplateSyntaxError at /admin/booking/bookedseat/53/change/ Invalid filter: 'length_is'
и вот мой html код
<div class="form-group{% if line.fields|length_is:'1' and line.errors %} errors{% endif %}{% if not line.has_visible_field %} hidden{% endif %}{% for field in line %}{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% endfor %}">
Из того, что я прочитал в Интернете, кажется, что тема может быть устаревшей или не полностью совместимой с Django 5, но я не совсем уверен. В настоящее время я застрял и не уверен, как решить эту проблему.
Кто-нибудь еще сталкивался с этой проблемой? Посоветуйте, как исправить ошибку шаблона, или предложите альтернативные темы, которые хорошо работают с Django 5?
Подробности:
<<<0><>>Django версии: 4.2 Версия Jazzmin: django-jazzmin-3.0.0
Заранее спасибо за любую помощь!
Вопросы:
Кто-нибудь сталкивался с этой проблемой при работе Jazzmin на Django 5?
Существует ли известное исправление или обходной путь для устранения этой ошибки фильтра length_is при использовании Jazzmin?
Может ли понижение версии Django или внесение изменений в шаблоны Jazzmin быть приемлемым решением?
Есть два решения, которые мне помогли.
- Один понижает версию с
Django==5.1
доDjango==5.0
- добавьте это в
@register.filter(name="length_is") def length_is(value: Any, length: str | int) -> bool: return len(value) == int(length)
в jazzmin.py, найденный вlib/python3.11/site-packages/jazzmin/templatetags
в моем виртуальном окружении, настройте версию python на вашу.
Надеюсь, это поможет вам.
Проблема в том, что начиная с версии 5.1, некоторые шаблонные теги, которые в настоящее время используются в админ-панели Django-Jazzmin, были удалены. Из-за этого вы сталкиваетесь с исключениями.
Вы можете либо перейти на более раннюю версию Django, либо вручную настроить templatetags в Django-Jazzmin, чтобы избежать исключений, вызванных удалением этих тегов шаблонов в более новых версиях.
Lib/site-packages/jazzmin/templatetags/jazzmin.py и просто добавьте этот код
@register.filter(name='length_is')
def length_is(value, arg):
return len(value) == int(arg)