使用Django-Crispy-Forms的Django-Allauth风格登录表

时间:2015-10-07 17:29:08

标签: html css django forms django-allauth

我正在使用django-crispy-forms来设置django-allauth login.html的登录表单

  <form class="login" method="POST" action="{% url 'account_login' %}">
    {% csrf_token %}
    {{ form|crispy }}
    {% if redirect_field_value %}
    <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
    {% endif %}
    <a class="button secondaryAction" href="{% url 'account_reset_password' %}">{% trans "Forgot Password?" %}</a>
    <button class="primaryAction" type="submit">{% trans "Sign In" %}</button>
  </form>

但是,{{ field.label }}形式不是&#34;内联&#34;使用{{ field }}。是否有一种简单的方法可以让它们内联,同时仍然使用django-crispy-form或类似的东西来润饰外观?

我还想学习如何隐藏{{ field.label }}。我唯一能想到的就是遍历表单的字段,并在下面的答案中注释掉标签显示。

Django Forms and Bootstrap - CSS classes and <divs>

2 个答案:

答案 0 :(得分:0)

是的,您可以使标签与其相关的字段内联。使用自定义css重写bootstrap.css。更具体地说,您需要div.controls,包含input和错误消息,显示为inline-block

div.controls{
    display: inline-block;
}

根据您当前的页面样式,您要在页面上呈现的内容(字段,标签,错误消息等)以及它应该如何显示(例如,在错误消息带有错误的行中),可能还需要更改宽度并显示input.form-control和错误消息的属性。

为了隐藏标签,请在forms.py中将其设置为空:

somefield = forms.CharField(label='', ...)

这会使标签消失。

答案 1 :(得分:0)

我找到了django-widget-tweak软件包,它允许更好地控制django表单中的每个字段。