Некорректное отображение flash-сообщения в Django
Проблема следующая: не отображается flash сообщение на сайте. При редактировании информации о пользователе должно появляться сообщение об успешном изменении информации. Но оно не появляется. вот сама View.py
@login_required
def edit_user(request, pk):
user = get_object_or_404(User, pk=pk)
if request.user != user:
messages.error(request,
'У вас нет прав для изменения другого пользователя.',
extra_tags='danger')
return redirect('user_list')
user_form = UserEditForm(request.POST or None, instance=user)
password_form = UserPasswordChangeForm(user, request.POST or None)
if request.method == 'POST':
messages.success(request, 'Пользователь успешно изменен')
if password_form.is_valid() and password_form.cleaned_data[
'old_password'] and password_form.cleaned_data['new_password1']:
password_form.save()
update_session_auth_hash(request, password_form.user)
if user_form.is_valid():
user_form.save()
return redirect('user_list')
context = {
'user_form': user_form,
'password_form': password_form,
}
return render(request, 'users/edit_user.html', context)
самое странное, что если убрать из условия
if user_form.is_valid():
user_form.save()
то все работает (естественно, логика не работает, но сообщение об успешном изменении появляется)
так как ошибка может быть более глубокой, я на всякий случай оставлю ссылку на репозиторий
Источник: Stack Overflow на русском