Как разрешить пользователю редактировать данные пользовательской модели в панели пользователя и обновлять ее в модели в django? - PullRequest
0 голосов
/ 22 января 2020

У меня есть редактировать шаблон профиля, и я написал представление, позволяющее пользователю редактировать учетную запись, но я не получаю форму, даже если я написал URL-адрес и просмотр правильно, вы можете помочь мне, как позволить пользователю редактировать модель пользователя в переднем конце мои views.py:

def edit_profile(request):
    if request.method == 'POST':
        form = UserChangeForm(request.POST, instance=request.user)

        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('modsy:account'))

Forms.py:

class EditProfileForm(UserChangeForm):
    template_name='edit_profile'

    class Meta:
        model = User
        fields = (
            'email',
            'first_name',
            'last_name',
            'password'
        )

    else:
        form = UserChangeForm(instance=request.user)
        args = {'form': form}
        return render(request,'edit_profile.html')

Я только получаю кнопку отправки на странице editprofile, но форма не приходит, можете ли вы сказать, какую ошибку я совершил

1 Ответ

1 голос
/ 22 января 2020

Вы обрабатываете только запрос POST, но не GET. Также здесь ваше имя формы EditProfileForm, а не UserChangeForm, поэтому измените свой взгляд следующим образом:

def edit_profile(request):
    if request.method == 'POST':
        form = EditProfileForm(request.POST, instance=request.user)

        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('modsy:account'))
    else:
         form = EditProfileForm()
    return render(request,'Your_template',{'form':form})
...