Django项目中使用django-bootstrap-icons的custom_icon触发KeyError错误
Django Bootstrap Icons自定义图标KeyError问题解决
问题描述
正常的Bootstrap图标可正常工作,例如使用标签{% bs_icon 'slack' size='2em' %}。但通过django_bootstrap_icons模块使用{% custom_icon 'c-program' %}标签时,触发以下错误:
KeyError at /
'fill-rule'请求方法: GET
请求URL: http://localhost:8000/
Django版本: 4.1.8
异常类型: KeyError
异常值:
'fill-rule'
异常位置: /opt/setup/.venv/lib/python3.9/site-packages/django/utils/html.py, line 103, in format_html
触发于: apps.bio.views.IndexView
Python可执行文件: /opt/setup/.venv/bin/python
Python版本: 3.9.16
Python路径:
['/workdir/src',
'/usr/local/lib/python39.zip',
'/usr/local/lib/python3.9',
'/usr/local/lib/python3.9/lib-dynload',
'/opt/setup/.venv/lib/python3.9/site-packages']
解决方案
- 补全自定义SVG属性:在你的
c-program自定义SVG文件的根<svg>标签中,添加fill-rule="evenodd"(或符合需求的对应值),确保该属性存在。 - 显式指定标签参数:调用
custom_icon时直接传入fill_rule参数,比如{% custom_icon 'c-program' fill_rule='evenodd' %},跳过模板对该属性的自动读取逻辑。 - 更新模块版本:检查django_bootstrap_icons的版本,更新至最新版,旧版本可能存在自定义图标属性处理的bug,新版本大概率已修复。
内容的提问来源于stack exchange,提问作者Roman
相关产品推荐
相关产品推荐

