2012-12-05 39 views
0

我重寫保存方法的ModelFormDjango的保存覆蓋上重複鍵錯誤

def save(self, commit=True, *args, **kwargs):                      
    userProfile = super(UserProfileForm, self).save(*args, **kwargs)                
    if self.cleaned_data.get('birth_year') :                      
      userProfile.birthDay=date(self.cleaned_data['birth_year'], self.cleaned_data['birth_month'], self.cleaned_data['birth_day'])   
    **userProfile.save(commit)** <- This is error!!! 
    return userProfile                           

這是view.py

def user(request):                                                                
    if request.method=='POST':                                                             
     form = UserProfileForm(request.POST, instance=request.user.get_profile(), option='modify')                                            

     if form.is_valid():                                                             
      userProfile = form.save()                                                           
    else:                                                                  
     form = UserProfileForm(instance = request.user.get_profile(), option='modify')                                               

    return render(request,'profile/user.html', {'userProfileForm':form,})                                                  

但是,如果更新我的用戶配置,form.save()使錯誤,用於重複密鑰。

我該如何解決這個問題?

+0

向我們展示您的UserProfile模型及其保存方法 –

回答

1

save(commit)將強制插入。

commit是一個關鍵字參數。

save(commit=commit)