Я хочу разрешить пользователям изменять свои имена пользователей, поэтому у меня есть форма:
class UserForm(models.ModelForm):
class Meta:
model = User
fields = ('username', 'first_name', 'last_name')
В шаблоне у меня есть блок приветствия, что-то вроде Hello, {{request.user.username}}
Когда я отправляю форму с именем пользователя, которое уже существует, выдается ошибка «Пользователь с этим именем пользователя уже существует.», Но в блоке приветствия я вижу Hello, username (где username - это то, которое я отправил).
Что я делаю не так? Кто-нибудь сталкивался с чем-то похожим?
Вот код просмотра:
@login_required
def persona_edit(request):
form = PersonaForm(request.POST or None, instance=request.user.persona)
user = User.objects.get(pk=request.user.pk)
user_form = UserForm(request.POST or None, instance=user)
if form.is_valid() and user_form.is_valid():
form.save()
user_form.save()
messages.success(request, _(u'Profile updated'))
return redirect('identity:dashboard')
payload = {'form': form, 'user_form': user_form}
return render(request, 'identity/persona_edit.html', payload)