Сортировка.
У меня форма модели определена так:
class EditUserForm(UserForm):
def __init__(self,data=None,instance=None):
UserForm.__init__(self,data=data,instance=instance)
del self.fields['username']
Я сделал это, потому что хотел исключить отображение поля имени пользователя в моей EditUserForm, но из-за того, что я переписал поле имени пользователя в UserForm, ошибка в django мешает этому работать, поэтому я написал форму таким образом.
Код моего вида выглядит следующим образом:
if request.method == 'POST':
uf = EditUserForm(request.POST,instance=user)
upf = StudentProfileForm(request.POST,instance=profile)
if uf.is_valid() and upf.is_valid():
print 'VALID'
uf.save()
upf.save()
messages.success(request, 'You have successfully updated your profile.')
return HttpResponseRedirect('/student/editprofile')
else:
print 'INVALID'
Чтобы проверить это, я попытался изменить имя и сделать пароли не совпадающими, и при отправке я заметил, что был напечатан INVALID (правильно появилась ошибка проверки паролей), НО в верхней части страницы, где у меня есть «Добро пожаловать ( имя пользователя) (фамилия пользователя) "Я заметил, что имя изменилось. Когда я перехожу на другую страницу, она возвращается к правильному значению. Как сделать так, чтобы этого не произошло?
Это мой HTML-код:
{% if user.is_authenticated %}
Welcome, <a href = "/{{user.get_profile.getType}}/profile">{{user.first_name}} {{user.last_name}}</a> |
<a href = "/auth/logout">Logout</a>
{% else %}
{% endif %}
Мое предположение относительно того, что происходит, когда я публикую данные, это помещает user.first_name в контекст, перезаписывая фактическое user.first_name. Но это недействительно, потому что данные еще не сохранены ...
Итак, , как я могу использовать user.first_name в шаблоне, который публикуется без изменения его значения до тех пор, пока он действительно не будет действительным ??