Django Crispy Forms、Bootstrap、helper.label_class 和 helper.field_class 不起作用
Posted
技术标签:
【中文标题】Django Crispy Forms、Bootstrap、helper.label_class 和 helper.field_class 不起作用【英文标题】:Django Crispy Forms, Bootstrap, helper.label_class and helper.field_class not working 【发布时间】:2014-05-19 01:35:07 【问题描述】:我对脆皮表单框架有问题,设置 field_class 和 label_class 属性对布局没有影响。我正在使用 Bootstrap3,所有的 css 文件都可以在我网站的其他地方使用(即它们在静态目录中被成功提取)。
forms.py
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)
helper = FormHelper()
helper.form_class = 'form-horizontal'
helper.label_class = 'col-lg-2'
helper.field_class = 'col-lg-10'
helper.layout = Layout(
'username',
'password',
Submit('submit', 'Log Me In', css_class='btn btn-success'),
)
login.html
% extends "base.html" %
% load crispy_forms_tags %
% block content %
% crispy form %
% endblock %
在我的浏览器中检查元素时,col-lg-2
和 col-lg-10
CSS 类根本没有分别应用于标签和字段...
【问题讨论】:
是否应用了 form_class 或布局属性?编辑:还要检查在您的项目中更改此设置。 django-crispy-forms.readthedocs.org/en/latest/… 调试选项未显示任何错误。你能澄清一下 form_class 或 layout 属性是什么意思吗? 呈现的 HTML 中的表单元素上是否有“form-horizontal”类? 是的,有。绝对。 仅供参考,我将 bootstrap3 用于 css。 【参考方案1】:您应该将所有辅助逻辑放在__init__
方法下:
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)
def __init__(self, *args, **kwargs):
super(LoginForm, self).__init__(self, *args, **kwargs)
self.helper = FormHelper()
self.helper.form_class = 'form-horizontal'
self.helper.label_class = 'col-lg-2'
self.helper.field_class = 'col-lg-10'
self.helper.layout = Layout(
'username',
'password',
Submit('submit', 'Log Me In', css_class='btn btn-success'),
)
【讨论】:
以上是关于Django Crispy Forms、Bootstrap、helper.label_class 和 helper.field_class 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Ajax 渲染 django-crispy-forms 的验证错误?
Django-crispy-forms:为 AppendedText 父 div 设置 CSS 类
python测试开发django-41.crispy-forms设计标签式导航菜单(TabHolder)
使用内联表单在 django-crispy-forms 中呈现字段错误