Пример #1
0
def edit_user(request):
    '''
    '''

    data = {}
    
    if request.method == "POST":
        form = EditUserForm(request.POST)
        if form.is_valid():
            changes = form.cleaned_data
            profile = UserProfile.objects.get(user_id=request.user.id)
            user = authenticate(username=profile.user.username, password=changes['current_password'])
            if user is not None:
                if changes['new_password'] != '':
                    profile.user.set_password(changes['new_password'])
                    profile.user.save()
                if changes['email'] != '':
                    profile.user.email = changes['email']
                    profile.user.save()
                if changes['location']:
                    profile.location = changes['location']
                    profile.save()
                return HttpResponseRedirect('/user/%d' % profile.id)
            else:
                data = errors('Invalid password Supplied', data)
                return HttpResponse(json.dumps(data), content_type="application/json")
    else:
        form = EditUserForm()

    return render(request, 'app/settings.html', {'form': form})
Пример #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)
Пример #3
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)
            })
Пример #4
0
def edit_user_view(request, user_id):
    user = User.objects.get(id=user_id)
    form = EditUserForm(user, request.POST or None)
    if form.is_valid():
        full_name = form.cleaned_data['full_name']
        birth_day = form.cleaned_data['birth_day']
        phone = form.cleaned_data['phone']
        middle_name = form.cleaned_data['middle_name']
        email = form.cleaned_data['email']
        user.full_name = full_name
        user.birth_day = birth_day
        user.phone = phone
        user.middle_name = middle_name
        user.email = email
        user.save()
        return HttpResponseRedirect('/edit_user/'+str(user.id)+'/')

    context = {
        'user': user,
        'form': form
    }
    return render(request, 'edit_user.html', context)