2
表這是我forms.py片斷Django的雛型 - 無法更新與外鍵
class ContactForm(forms.ModelForm):
class Meta:
model = Contact
exclude = ('user',)
這是我的views.py片斷
def contact(request, template_name):
if request.method == "POST":
form = ContactForm(request.POST)
if form.is_valid():
obj = form.save(commit=False)
obj.user = request.user
obj.save()
return HttpResponseRedirect('/newuser/step2/')
else:
if (Contact.objects.filter(user=request.user)):
contact_obj = Contact.objects.get(user_id=request.user.id)
form = ContactForm(instance = contact_obj)
else:
form = ContactForm()
return render_to_response(template_name, RequestContext(request, {'form' : form}))
當我填寫的數據爲先時間爲註冊用戶,數據成功進入表格。當我再次訪問的形式,從數據庫中的數據被加載,但在重新提交,下面的錯誤來
Exception Type: IntegrityError
Exception Value: (1062, "Duplicate entry '3' for key 'user_id'")
Exception Location: /usr/lib/python2.7/dist-packages/MySQLdb/connections.py in defaulterrorhandler, line 36
我的聯繫表已經自動生成的「ID」字段作爲主鍵,而「USER_ID」是外鍵字段。 '3'是登錄用戶的'user_id'。
我正在嘗試做一件非常簡單的事情,在用戶表中存儲一些數據並將其鏈接起來。有沒有更好的方法來做到這一點?我在這裏做錯了什麼?
如果我只能給你更多的upvotes ... – jliendo