У меня проблемы с redirect()
в моих представлениях Django.
У меня есть два вида, определенные следующим образом:
# view for managing a user's account
@login_required
@require_http_methods(['GET'])
def view_account(request, updated=False):
context = {
'user': request.user,
'cart_items': ShoppingCartItem.objects.filter(user_key=request.user),
'updated': updated,
}
print("DEBUG: view_account: %s" % updated) # debug
return render(request, 'registration/view_account.html', context)
и
# view for updating information about a user's account
@login_required
@require_http_methods(['GET', 'POST'])
def update_account_info(request):
if request.method == 'POST':
# if this is a POST, user has submitted updated information
form = UpdateUserInfoForm(request.POST, instance=request.user)
if form.is_valid():
# if valid, redirect to view_account
form.save()
# return render(request, 'registration/view_account.html', context)
return redirect('/view_account', updated=True)
Мои URL для этих функций выглядят так:
path('view_account', views.view_account, name='view_account'),
path('update_account', views.update_account_info, name='update_account'),
Во второй функции я пытаюсь перенаправить пользователя в представление view_account()
и передать аргумент updated=True
, чтобы уведомить пользователя остраница, на которой была обновлена их информация. По какой-то причине, когда я запускаю это, кажется, что оно не меняет значение по умолчанию updated
.
Как вы можете видеть, я получил отладочный оператор в представлении view_account()
. Вывод следующий:
[04/Nov/2019 16:51:33] "POST /update_account HTTP/1.1" 302 0
DEBUG: view_account: False
[04/Nov/2019 16:51:33] "GET /view_account HTTP/1.1" 200 1247
Не совсем уверен, что я делаю не так. Может кто-нибудь заметить что-нибудь смешное с моим кодом и / или указать мне направление поиска?
Заранее спасибо! Кроме того, я прошу прощения, если это не правильно отформатированный вопрос, я довольно новичок в StackOverflow, поэтому любые советы приветствуются.