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

2024-05-21 05:56:19 发布

您现在位置:Python中文网/ 问答频道 /正文

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


2条回答

下面是一个使用Bootstrap 4进行样式设置的示例。首先创建一个子类为LoginView的视图。在html文件中,而不是使用{{ form }}{{ form.username }}&{{ form.password }},您可以为字段提供自己的html。只需确保输入的名称与{{ 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 %}

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

相关问题 更多 >