我有以下的模型類:從表單自定義外鍵字段保存數據在Django
class ContactPerson(models.Model):
name = models.CharField(max_length=30)
def __unicode__(self):
return self.name
class Appartment(models.Model):
contact_person = models.ForeignKey(ContactPerson)
問題:在模板文件我想用戶填寫聯繫人的姓名,所以我改寫contact_person場如下:
class AppartmentSellForm(ModelForm):
contact_person = forms.CharField(max_length=30)
class Meta:
model = Appartment
在我看來,功能我做了以下數據來自提交表單保存:
def appartment_submit(request):
if request.method == "POST":
form = AppartmentSellForm(request.POST)
if form.is_valid():
appartment = form.save(commit=False) # ERROR HERE
cp = models.ContactPerson(name=form.cleaned_data['contact_person'])
appartment.contact_person = cp
appartment.save()
form.save();
return HttpResponseRedirect('/sell/')
else:
form = AppartmentSellForm()
return render_to_response('sell_appartment_form.html', {'form' : form})
錯誤消息:
#ValueError at /sell/sell_appartment/appartment_submit/
Cannot assign "u'blabla'": "Appartment.contact_person" must be a "ContactPerson" instance.**
我使用SQLite和Django的版本1.1.1
問題:如何解決這個問題?
這是Django的一個相當舊的版本,是否有你不使用1.3的原因? –
沒有特別的理由:) – Asterisk
在解決所有錯誤和棄用警告後,更新可能會緩解您的進度,這會更好。更多關於主題(帶有塵埃的Django技能),如果你打印cp變量,你會得到你所期望的嗎? –