如何禁用Django crispy-forms自动添加btn-primary类以移除按钮背景色
Django Crispy-Forms + Bootstrap5:禁用提交按钮自动添加的btn-primary类
问题根源是Crispy-Forms的Bootstrap5模板对Submit组件默认会强制追加btn-primary类,导致自定义css_class无法覆盖。这里有两个直接可行的解决办法:
方法一:用Button组件替代Submit(推荐)
Button组件不会自动添加btn-primary,只需手动指定type="submit"就能实现提交功能,自定义类可以完全生效:
from crispy_forms.helper import FormHelper from crispy_forms.layout import Button # 导入Button而非Submit def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_method = "POST" self.helper.add_input( Button( "submit", "Abschicken", type="submit", # 关键:指定按钮类型为submit css_class="btn btn-outline-theme btn-lg d-block w-100 fw-500 mb-3" ) )
方法二:自定义Crispy模板(全局生效)
如果需要全局所有提交按钮都去掉btn-primary,可以覆盖Crispy的Bootstrap5输入模板:
- 在项目的
templates目录下创建路径:crispy_forms/bootstrap5/ - 从crispy-bootstrap5包中复制
input.html文件到上述路径 - 打开复制的
input.html,找到针对Submit类型判断的代码行,删除其中的btn-primary类即可。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

