微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用基于django类的视图进行注册,登录和注销

如何解决使用基于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 举报,一经查实,本站将立刻删除。