为什么Django LoginView登录不起作用?

2024-06-02 15:27:32 发布

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

我使用Django ready LoginView类制作了一个登录表单,但idk解释了为什么它不起作用。这是密码

视图.py

from django.shortcuts import render, redirect
from django.contrib.auth import views as auth_views
from django.contrib.auth.forms import AuthenticationForm


def main(request):
    if request.method == 'POST':
        loginform = auth_views.LoginView.as_view(template_name='main/index.html')
        loginform(request)
        return redirect('signup')
    loginform = AuthenticationForm(request)

    return render(request, 'main/index.html', {'loginform': loginform})

url.py

from django.contrib import admin
from django.urls import path, include
from . import views

urlpatterns = [
    path('', views.main, name='main'),
    path('signup/', include('signup.urls')),
    path('admin/', admin.site.urls),
]

HTML

<div class="log-outside">
    <div class="log-inside">
        {% csrf_token %}
        {{ loginform }}
        <button type="subbmit">Log in</button>
    </div>
</div>

Tags: pathdjangofromimportdivauthadminmain
1条回答
网友
1楼 · 发布于 2024-06-02 15:27:32

如果要更改LoginView中的template_name,最简单的方法是更改urls.py

from django.contrib.auth import views as auth_views

urlpatterns = [
    path('login/', auth_views.LoginView.as_view(
        template_name='main/index.html',
    ), name='login'),
]

您可以使用settings.py文件中的以下设置重定向未登录的用户

LOGIN_REDIRECT_URL = 'Dashboard:index'
LOGIN_URL = 'Account:login'
LOGOUT_REDIRECT_URL = 'Account:login'

相关问题 更多 >