使用基于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.pi文件(

path('users/', include(urls)),
path('users/', include('authentication.urls')),

此代码的问题是每当我登录时,我仍然可以通过登录url(本例中的登录url:http://localhost:8000/users/login/(登录和注册,我如何限制用户再次登录

我发现上的默认LoginView((类

django.contrib.auth import views 

具有一个称为的布尔属性

redirect_authenticated_user

我相信这就是你想要的。

只需在中查找class LoginViewhttps://docs.djangoproject.com/en/3.2/topics/auth/default/你会看到的。

最新更新