0

我正在覆盖 modelForm 的保存方法

  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,})                                                                                                                                                                                                     

但是如果我更新我的 UserProfile,form.save() 会为重复的 Key 出错。

我怎么解决这个问题?

4

1 回答 1

1

save(commit)将强制插入。

commit是一个关键字参数。

save(commit=commit)

于 2012-12-06T04:39:40.290 回答