【问题标题】:Django Crispy Forms, Bootstrap, helper.label_class and helper.field_class not workingDjango Crispy Forms、Bootstrap、helper.label_class 和 helper.field_class 不起作用
【发布时间】: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-2col-lg-10 CSS 类根本没有分别应用于标签和字段...

【问题讨论】:

  • 是否应用了 form_class 或布局属性?编辑:还要检查在您的项目中更改此设置。 django-crispy-forms.readthedocs.org/en/latest/…
  • 调试选项未显示任何错误。你能澄清一下 form_class 或 layout 属性是什么意思吗?
  • 呈现的 HTML 中的表单元素上是否有“form-horizo​​ntal”类?
  • 是的,有。绝对。
  • 仅供参考,我将 bootstrap3 用于 css。

标签: css django forms


【解决方案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'),
        )

【讨论】:

    猜你喜欢
    • 2015-08-03
    • 2013-08-01
    • 1970-01-01
    • 2021-05-26
    • 2015-01-04
    • 2015-12-27
    • 2019-07-31
    • 1970-01-01
    • 2015-02-19
    相关资源
    最近更新 更多