У меня есть следующие классы моделей:
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
Вопрос: Как решить эту проблему?