无法将css类添加到某些表单中

时间:2016-10-04 12:59:51

标签: django django-registration

也许这只是一个bug或众所周知的功能,但没有找到谷歌的任何东西 来自表单的片段(用于django-registration的RegisterForm):

widgets = {
        'username': HiddenInput(),
        'email': EmailInput(attrs={'class': "form-control"}),
        'password1': PasswordInput(attrs={'class': "form-control"}),
        'password2': PasswordInput(attrs={'class': "form-control"}),
        'first_name': TextInput(attrs={'class': "form-control"}),
        'last_name': TextInput(attrs={'class': "form-control"}),
    }

模板片段:

<div class="container">
{{ form.non_field_errors }}
<form method="post">
    {% csrf_token %}
    {% for field in form %}
    {% if field.name != 'username' %}
    <div class="form-group row {% if field.errors %}has-danger{% endif %}">
        {% if field.errors %}
        <div class="form-control-feedback">{{ field.errors.as_text }}</div>
        {% endif %}
        <label for="{{ field.id_for_label }}" class="col-form-label col-xs-2">{{ field.label }}</label>
        <div class="col-sm-10">
            {{ field }}
        </div>
    </div>
    {% endif %}
    {% endfor %}
    <div class="form-group row">
        <div class="offset-sm-2 col-sm-10">
        <button type="submit" class="btn btn-primary">Register</button>
        </div>
    </div>
</form>

根本没有火箭科学。密码和电子邮件不会获得css类,而是文本字段!我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

您在定义小部件时缺少信息。请看这里提供的答案:

CSS styling in Django forms

答案 1 :(得分:0)

经过进一步的测试,这似乎是django-registration的一个错误。并非所有字段都通过小部件规范获取属性作为解决方法,我通过templatetags添加了css类。

我不知道它是否正确,所以我不会将此标记为已接受的答案。但它帮助了我。