我创建了一个自定义LoginView,只是为了传递一些上下文变量
但现在,当我登录时,用户不会登录,只会重定向到urls.py
文件中指示的页面:
from core import views
app_name = "core"
urlpatterns = [
path('', views.ScolarteHome.as_view(), name='home'),
path("ingresar/", views.LoginView.as_view(template_name='scolarte/registration/login.html', success_url=reverse_lazy('core:home')), name="login"),
]
我的自定义登录视图:
class LoginView(SuccessURLAllowedHostsMixin, FormView):
"""
Display the login form and handle the login action.
"""
form_class = AuthenticationForm
authentication_form = LoginForm
template_name = 'registration/login.html'
redirect_authenticated_user = True
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
msg = {'cliente': 'Ingresar como cliente', 'vendedor': 'Ingresar como vendedor'}
context['msg'] = msg.get(self.request.GET.get('cliente-o-vendedor'), '')
return context
forms.py
from django import forms
from django.contrib.auth.forms import AuthenticationForm
from django.forms.widgets import PasswordInput, TextInput
class LoginForm(AuthenticationForm):
username = forms.CharField(widget=TextInput(attrs={'class': 'span2','placeholder': 'Nombre de usuario'}))
password = forms.CharField(widget=PasswordInput(attrs={'class': 'span2','placeholder':'Contraseña'}))
您可以直接使用
LoginView
作为父类,而不是不提供身份验证逻辑的FormView
:相关问题 更多 >
编程相关推荐