видео:
исходный код:
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'),
]