类别。Django - 即使数据无效,ModelForm仍在保存
我已经定义了,就像这样的ModelForm:
class EditUserForm(UserForm):
def __init__(self,data=None,instance=None):
UserForm.__init__(self,data=data,instance=instance)
del self.fields['username']
我这样做是因为我想从显示在我的EditUserForm排除用户名字段,而是因为我重写了在用户窗体用户名字段,在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'
为了测试它,我试图改变名字,使密码不匹配,我提出时,我注意到的无效印刷(正确地出现在密码验证错误)但在我有“欢迎(用户的名字)(用户姓氏)”页面的顶部“我注意到名字已经改变。当我转到不同的页面时,它会回到正确的值。我如何使这不发生?
这是我的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在多数民众赞成被张贴在不改变它的值,直到它实际上是有效的模板?
请显示该视图的其余代码。 – 2011-01-25 07:13:11