我们可以在没有内置Django表单的情况下使用Django身份验证吗

时间:2020-04-13 14:56:20

标签: python django

我想使用输入字段进行身份验证,但是如果我搜索身份验证教程,它们将使用内置的Django表单,而我无法使用html进行设计

2 个答案:

答案 0 :(得分:0)

您可以customize如何呈现表单,也可以编写几乎任何您想要的HTML,只需确保您的输入名称属性与您在后端接受的内容相匹配即可。

答案 1 :(得分:0)

这是一个使用Bootstrap 4进行​​样式设置的示例。首先创建一个子类LoginView的视图。在html文件中,您可以为字段提供自己的html,而不是使用{{ form }}{{ form.username }}{{ form.password }}。只要确保您输入的名称与{{ form }}中的名称相同即可。

views.py:

from django.contrib.auth.views import LoginView

class MyLoginView(LoginView):
    template_name = 'login.html'

login.html:

{% block content %}
...
<div id="login-row" class="row justify-content-center align-items-center">
    <div id="login-column" class="col-md-6">
        <div id="login-box" class="col-md-12">
            <form id="login-form" class="form" action="" method="post">
                {% csrf_token %}
                <div class="form-group">
                    <label for="username" class="text-white">Username:</label><br>
                    <input type="text" name="username" id="username" class="form-control" required>
                </div>
                <div class="form-group">
                    <label for="password" class="text-white">Password:</label><br>
                    <input type="password" name="password" id="password" class="form-control" required>
                </div>
                <div class="form-group">
                    <input type="submit" name="login" class="btn btn-light btn-md btn-block mt-5"
                           value="log in">
                </div>
            </form>
        </div>
    </div>
</div>
...
{% endblock content %}