Beispiel #1
0
def edit(request):
    user = request.user
    if request.method == 'GET':
        return render(request, 'profile/edit.html', {
            'form': EditUserForm(instance=user)
        })

    elif request.method == 'POST':
        form = EditUserForm(request.POST, instance=user)
        if form.is_valid():
            user = form.save(commit=False)
            errors = []
            if user.passport_date > today():
                errors.append('Дата выдачи паспорта из будущего')
            if user.get_age() < 18:
                errors.append('Пользователю не исполнилось 18')
            if user.get_age() > 150:
                errors.append('Пользователь слишком стар')
            if user.passport_date < user.birthday:
                errors.append('Паспорт выдан до рождения')
            if errors:
                for error in errors:
                    request.user.alert(error)
                return render(request, 'profile/edit.html', {
                    'form': EditUserForm(request.POST)
                })
            else:
                form.save()
                request.user.alert('Данные сохранены.')
                return redirect('profile:info')
        else:
            err = str(form.errors) + ""
            if err.find('phone') >= 0:
                request.user.alert('Пользователь с таким номером телефона уже зарегестрирован')
            if err.find('passport_id') >= 0:
                request.user.alert('Пользователь с таким номером паспорта уже зарегестрирован')
            if err.find('passport_ser') >= 0:
                request.user.alert('Пользователь с такой серией паспорта уже зарегестрирован')
            if err.find('username') >= 0:
                request.user.alert('Пользователь с таким логином уже зарегестрирован')
            return render(request, 'profile/edit.html', {
                'form': EditUserForm(request.POST)
            })
Beispiel #2
0
 def post(self, request, *args, **kwargs):
     user = User.objects.filter(username=self.kwargs['username']).first()
     profile = Profile.objects.filter(user=user).first()
     user_form = EditUserForm(request.POST, instance=user)
     profile_form = EditProfileForm(request.POST, instance=profile)
     if user_form.is_valid() and profile_form.is_valid():
         user_form = user_form.save()
         custom_form = profile_form.save(False)
         custom_form.user = user_form
         custom_form.save()
         return redirect('user', username=user.username)
     return render(request, self.template_name, args)