Django не перенаправляет из-за ошибки Page not Found

Я создаю функцию редактирования профиля, которая обновляет профиль и перенаправляет обратно на страницу профиля текущего пользователя. В настоящее время обновление работает нормально, но перенаправление дает мне ошибку "страница не найдена". Почему это происходит?

url patterns:

urlpatterns = [
    path('change-profile/', users_views.change_profile, name='change_profile'),
    path('user/<str:username>/', UserProfileView.as_view(), name='user-profile'),
    ...
]

views.py

@login_required
def change_profile(request):
    if request.method == 'POST':
        u_form = UserUpdateForm(request.POST, instance=request.user)
        p_form = ProfileUpdateForm(request.POST, request.FILES, instance=request.user.profile)
        if u_form.is_valid() and p_form.is_valid():
            u_form.save()
            p_form.save()
            messages.success(request, 'Profile Updated')
            return redirect('user-profile', {'username':request.user.username})
    else:
        u_form = UserUpdateForm(instance=request.user)
        p_form = ProfileUpdateForm(instance=request.user.profile)
    context = {
        'u_form' : u_form,
        'p_form' : p_form
    }
    return render(request, 'users/change_profile.html', context)

Сообщение об ошибкеenter image description here

Функция redirect(…) [Django-doc] использует именованные параметры, а не словарь, поэтому:

return redirect('user-profile', username=request.user.username)

Вы отправили {'username': 'TestPWRS' } в качестве имени пользователя, и (вероятно) не существует пользователя с таким именем, только пользователь с именем TestPWRS.

Вернуться на верх