11
當我試圖編輯配置文件添加信息到用戶配置模型,我得到這個奇怪的錯誤:Django的:失敗完整性錯誤UNIQUE約束:user_profile.user_id
IntegrityError at /profiles/edit/
UNIQUE constraint failed: user_profile.user_id
這裏有什麼問題,
模型:
class UserProfile(models.Model):
user = models.OneToOneField(User)
bio = models.TextField(blank=True)
phone= models.CharField(max_length=10, blank=True)
address = models.CharField(max_length=1024)
age = models.PositiveIntegerField(blank=True,null=True)
gender = models.IntegerField(choices=GENDER_CHOICES, default=1)
形式:
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('phone','age','gender','address','bio')
觀點:
def edit_profile(request):
if request.method == 'POST':
form = UserProfileForm(request.POST)
print request.POST
if form.is_valid():
new_profile = UserProfile(
user = request.user,
bio = request.POST['bio'],
address = request.POST['address'],
age = request.POST['age']
)
new_profile.save()
return HttpResponseRedirect(reverse('user_public_profile', args=(request.user.username,)))
return render(request,'users/edit_profile.html', {'form': form})
else:
form = UserProfileForm()
return render(request,'users/edit_profile.html',
{'form': form})
不具體到你的問題,但我遇到我的時候不小心被改變在'ModelForm.save對象字段(提交= FALSE)'同樣的錯誤跑了,或者至少是與我如何處理'commit'有關。 – jozxyqk 2015-06-06 15:17:41