видео:
исходный код:
views.py
class MyprojectLoginView(LoginView): template_name = 'login.html' form_class = AuthUserForm success_url = reverse_lazy('edit_page') def get_success_url(self): return self.success_url class RegisterUserView(CreateView): model = User template_name = 'register_page.html' form_class = RegisterUserForm success_url = reverse_lazy('edit_page') success_msg = 'Пользователь успешно создан' def form_valid(self,form): form_valid = super().form_valid(form) username = form.cleaned_data["username"] password = form.cleaned_data["password"] aut_user = authenticate(username=username,password=password) login(self.request, aut_user) return form_valid class MyProjectLogout(LogoutView): next_page = reverse_lazy('edit_page')
forms.py
class AuthUserForm(AuthenticationForm, forms.ModelForm): class Meta: model = User fields = ('username','password') def __init__(self,*args,**kwargs): super().__init__(*args,**kwargs) for field in self.fields: self.fields[field].widget.attrs['class'] = 'form-control' class RegisterUserForm(forms.ModelForm): class Meta: model = User fields = ('username','password') def __init__(self,*args,**kwargs): super().__init__(*args,**kwargs) for field in self.fields: self.fields[field].widget.attrs['class'] = 'form-control' def save(self, commit=True): user = super().save(commit=False) user.set_password(self.cleaned_data["password"]) if commit: user.save() return user
urls.py
urlpatterns = [ path('login', views.MyprojectLoginView.as_view(), name='login_page'), path('register', views.RegisterUserView.as_view(), name='register_page'), path('logout', views.MyProjectLogout.as_view(), name='logout_page'), ]