類別。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