如何解决使用基于django类的视图进行注册,登录和注销
我正在尝试使用基于django类的视图制作身份验证系统
到目前为止,我已经尝试过:
这是我的views.py文件:
from django.shortcuts import render
from django.views import generic
from .forms import UserRegistrationForm
from django.urls import reverse_lazy
class UserCreationView(generic.CreateView):
form_class = UserRegistrationForm
template_name = 'registration/register.html'
success_url = reverse_lazy('login')
这是forms.py文件
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
class UserRegistrationForm(UserCreationForm):
email = forms.EmailField()
class Meta:
model = User
fields = ('username','email','password1','password2',)
widgets = {
'email': forms.EmailInput(attrs={'class':'input','placeholder': 'Email Address'})
}
这是urls.py文件:
from django.urls import path
from .views import UserCreationView
urlpatterns = [
path('register/',UserCreationView.as_view(),name = 'register'),]
其他urls.py文件(项目文件夹中存在urls.py文件)
path('users/',include(urls)),path('users/',include('authentication.urls')),
此代码的问题是,每当我登录时,我仍然可以通过转到登录网址(在这种情况下为登录网址:http://localhost:8000/users/login/
)进行登录和注册,如何限制用户重新登录
解决方法
我发现了默认的 LoginView() 类
django.contrib.auth import views
有一个名为
的布尔属性redirect_authenticated_user
我相信这就是您要找的。p>
只需在 https://docs.djangoproject.com/en/3.2/topics/auth/default/ 中查找 class LoginView
,您就会看到它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。