こんにちは私は2つの関連モデルを持っています。私はそれを保存する必要があります。ここ
はモデルである:ここでは関連するモデルを1つのクエリで保存します
Class Company(models.Model):
name = models.CharField(
max_length=255,)
class ContactPerson(models.Model):
company = models.ForeignKey(
Company,
related_name='contact_persons',)
name = models.CharField(
max_length=255,)
は、ビューの一部である:私は最初のフォームからcompany.id
を得るカントので、
class CompanyCreate(JsonView):
#JsonView write by me, contains some methods
def post(self, *args, **kwargs):
data = json.loads(self.request.body)
company = CompanyForm(data=data['company'])
contacts = ContactForm(data=data['contacts'])
if company.is_valid():
company.save()
if contacts.is_valid():
contacts.save(commit=False)
contacts.company = company
contacts.save()
return HttpResponse()
当社が保存されますが、私は、有効な連絡先フォームを傾けます。
私が正しく理解していれば、両方のフォームを検証して両方を保存するか、まったく保存しないでください。なぜなら、もしあなたが 'company.save()'と呼ばれ、新しい会社のインスタンスを作るからです。 –
ああ、私はちょうど保存後にクエリーセットからそれを取得する必要がありますが、このプロジェクトで私は同様に3つの関連モデルを持つフォームを持っています。そして、関連するオブジェクトを1つの形式で保存する方法があります。 –