Проблема с использованием <username>в URL - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь придать своему URL более персонализированный дизайн, поэтому для каждого пользователя я хочу, чтобы он имел доступ к своему профилю по этому пути: www.mysite/profile/myname

Я пробовал это на URL-адресе :

path('profile/<username>/', user_views.profile, name='profile')

Но когда я туда захожу http://localhost:8000/profile/gg/ нет профиля, и ошибка:

profile () получил неожиданный аргумент ключевого слова 'username'

Спасибо

views.py

def 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, f'Your account has been updated!')
            return redirect('profile')

    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/profile.html', context)

1 Ответ

0 голосов
/ 27 февраля 2019

Необходимо указать аргумент в сигнатуре метода, т.е. изменить

def profile(request):

на:

def profile(request, username):

...