2024-04-16 17:04:12 +03:00

96 lines
2.5 KiB
Python

from django.conf import settings
from django.contrib import messages
from django.core.mail import send_mail
from django.shortcuts import redirect, render
from django.urls import reverse
from django.utils.translation import gettext as _
from django.views.generic import View
from users.forms import SignUpForm, ProfileForm, UserForm
from users.models import Profile
__all__ = []
def signup(request):
form = SignUpForm(request.POST)
template = "users/signup.html"
context = {
"form": form,
}
if request.method == 'GET':
return render(request, template, context)
if form.is_valid():
user = form.save(commit=False)
user.save()
Profile.objects.create(user=user)
user.profile.save()
messages.success(request, _("Пользователь упешно создан"))
return redirect(reverse("users:login"))
return render(request, template, context)
def profile(request):
profile_form = ProfileForm(
request.POST or None,
instance=request.user.profile,
)
user_form = UserForm(
request.POST or None,
instance=request.user,
)
if request.method == 'GET':
return render(
request,
"users/profile.html",
{
"profile_form": profile_form,
"user_form": user_form,
"user": request.user,
},
)
if all((profile_form.is_valid(), user_form.is_valid())):
profile_form.save()
user_form.save()
return render(
request,
"users/profile.html",
{
"profile_form": profile_form,
"user_form": user_form,
"user": request.user,
},
)
class SignupView(View):
def get(self, request):
form = SignUpForm()
template = "users/signup.html"
context = {
"form": form,
}
return render(request, template, context)
def post(self, request):
form = SignUpForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
user.is_active = settings.DEFAULT_USER_IS_ACTIVE
user.save()
Profile.objects.create(user=user)
user.profile.save()
messages.success(request, _("Пользователь упешно создан"))
return redirect(reverse("users:login"))
template = "users/signup.html"
context = {
"form": form,
}
return render(request, template, context)