Django 处理 Bootstrap 表单

0 投票
1 回答
1341 浏览
提问于 2025-04-18 15:42

我有一个表单:

<form class="form-signin" role="form" method="POST" action="{% url     'django.contrib.auth.views.login' %}">
    {% csrf_token %}
    <input type="text" class="form-control" placeholder="Usuario" required autofocus>
    <input type="password" class="form-control" placeholder="Password" required>
    <button class="btn btn-lg btn-primary btn-block" type="submit">
      Sign in
    </button>
    <input type="hidden" name="next" value="{{ next }}" />
    <label class="checkbox pull-left">
    <input type="checkbox" value="remember-me">
    Remember me
    </label>

</form>

这个表单用了Bootstrap的样式。我之前有一个这样的表单:

<form class="form-signin" role="form" method="POST" action="{% url 'django.contrib.auth.views.login' %}">
    {% csrf_token %}
    <table>
      <tr>
        <td>{{ form.username.label_tag }}</td>
        <td>{{ form.username }}</td>
      </tr>
      <tr>
        <td>{{ form.password.label_tag }}</td>
        <td>{{ form.password }}</td>
      </tr>
    </table>

    <input type="hidden" name="next" value="{{ next }}" />
    <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>

  </form>

但是那个看起来真的很丑,所以我把它改了。问题是,在新表单中,我完全不知道怎么像以前那样实现Django的认证功能(以前的那个版本工作得很好,我只需要输入保存在Django的auth_table里的用户名和密码,就能顺利登录)

但是现在这个更好看的版本,我不知道该怎么做。我到处找了找,但都没有帮助。

任何建议都非常感谢。谢谢

编辑

我在这个视图的URL中使用了这个:

url(r'^login/$', 'django.contrib.auth.views.login',{'template_name':'login.html'}, name = 'login'),

所以我才会用那种丑陋的方式来渲染表单。

1 个回答

2

你可以自定义表单中的字段:

可以添加一些属性,比如类名、占位符(所有的HTML属性都可以)

class LoginForm(forms.Form):
    username = forms.CharField(max_length=30,widget=forms.TextInput().attrs={'class': 'form-control','placeholder':'Usuario' })
    password=forms.CharField(max_length=30,widget=forms.PasswordInput().attrs={'class': 'form-control','placeholder':'Password' })

撰写回答