我使用 django-jazzmin 模块向我的项目添加了 Django 管理面板主题。它最初工作正常,但是当我尝试访问管理面板中的某些选项(例如“用户”或“个人资料”)时,我遇到以下错误:
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 配合良好的替代主题的建议?
详情:
Django版本:4.2 Jazzmin 版本:django-jazzmin-3.0.0
预先感谢您的帮助!
问题:
有人在 Django 5 上使用 Jazzmin 时遇到过这个问题吗?
是否有已知的修复或解决方法来解决此 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 版本。希望这对您有帮助。