将引导程序应用于django注册页面



我有一个django应用程序,在那里我使用带有表单的身份验证系统。我是按照这个教程来做的。

<div class="panel panel-default">
    {% if registered %}
    <strong>Thank you for registering!</strong>
    <a href="/lms/">Return to the homepage.</a><br />
    {% else %}
    <strong><h3>Register here!</h3></strong><br />
        <form id="user_form" method="post" action="/lms/register/" enctype="multipart/form-data">
            {% csrf_token %}
            {{ user_form.as_p }}
            {{ profile_form.as_p }}
            <input type="submit" name="submit" class="btn btn-primary" value="Register" />
        </form>
    {% endif %}
</div>

现在我正试图将这些表单添加到引导程序标签中。但是,既然它将表单的所有元素都放在一个声明中,我该如何使用bootstrap使这些标签显示出来?

您不必在单个语句中输出模板中的表单。你可以做一些类似的事情:

{% for field in user_form %}
    <p class="some-bootstrapclass">{{ field.label_tag }}{{ field }}</p>
{% endfor %}

这是一个非常简单的例子。

然而,我强烈建议你看看脆的形式:

http://django-crispy-forms.readthedocs.org

使用脆皮表单,您可以在forms.py中设置所有内容,并且仍然在模板中的单个语句中输出表单,例如:

{% load crispy_forms_tags %}
{% crispy user_form %}

您可以使用特定的字段名称,而不是使用.as_p。例如,假设您有username和age字段。因此,它将像这个

{{ user_form.username }}
{{ user_form.age }}

希望它能有所帮助:)

这里的答案非常好,我已经成功地使用了Django Crispy表单(在Two Scoops中推荐)和其他库,如django-bootstrap。但如果需要另一个选项,我会使用表单来调整字段:

class UserAuthenticationForm(LoginForm):
    username = forms.CharField(
        max_length=30,
        widget=forms.TextInput(
            attrs={
                'class': 'form-control',
                'name': 'username',
                'placeholder': 'Username',
                'autofocus': 'autofocus',
            }
        )
    )

构建出您想要的所有字段。这样可以更好地控制表单的外观。然后,对于模板:

<form class="login" method="post" action="{% url 'account_login' %}">
    {% csrf_token %}
    {{ form }}
    . . .
    {# add errors, etc... #}
    <button class="btn btn-lg btn-primary" type="submit">
        {% trans "Log in" %}
    </button>
</form>

如果需要,也可以覆盖视图。。。

最新更新