создание вида редактирования профиля - PullRequest
0 голосов
/ 06 января 2020

Привет всем, это было давно, так как я не кодировал, но я заметил некоторые преф изменения, поэтому у меня возникли проблемы с приложением профиля, отредактировавшим профиль, мой код

просмотров

@login_required
def edit_profile(request):
    if request.method =='POST':
        user_form =UserEditForm(data=request.POST or None, instance=request.user)
        profile_form=ProfileEditForm(data=request.POST or None, instance=request.user.profile ,files =request.FILES)
        if user_form.is_valid() and profile_form.is_valid():
            user_form.save()
            profile_form.save()

       else:
            user_form=UserEditForm(instance=request.user)
            profile_form=ProfileEditForm(instance=request.user.profile)

       context ={
           'user_form':user_form,
           'profile_form':profile_form,
       }
       return render(request,'accounts/edit_profile.html',context)

form

class UserEditForm(forms.ModelForm):
     class Meta:
         model=User
         fields=('username', 'email')

class ProfileEditForm(forms.ModelForm):
    class Meta:
        model=Profile
        fields=('description', 'image')

еще одна попытка увидеть ту же ошибку

form

class EditProfileForm(UserChangeForm):

    class Meta:
        model=User
        fields=('username', 'email')

view

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

        if form.is_valid():
            form.save()
            return redirect("/profile/")

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

error Представление account.views .edit_profile не вернул объект HttpResponse. Вместо этого он вернул None.

1 Ответ

0 голосов
/ 06 января 2020

Поскольку ошибка говорит, что представление не вернуло ответ.

Ваш return render... был смещен по вашему методу POST:

@login_required
def edit_profile(request):
     # You need to define these before the POST method
     user_form=UserEditForm(instance=request.user)
     profile_form=ProfileEditForm(instance=request.user.profile)

    if request.method =='POST':
        user_form =UserEditForm(data=request.POST or None, instance=request.user)
        profile_form=ProfileEditForm(data=request.POST or None, instance=request.user.profile ,files =request.FILES)

        if user_form.is_valid() and profile_form.is_valid():
            user_form.save()
            profile_form.save()
            # I would return a success message here

        else:
            # Inform the user their form was not valid


     context = {
           'user_form':user_form,
           'profile_form':profile_form,
           }

     return render(request,'accounts/edit_profile.html',context)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...