私は1対1の関係を持つDjangoモデルで作業しています。方法。あなたにいくつかの文脈を与えるために、これは彼らの基数関係を持つ関連するクラスです。Django 1.10 ::両方のインスタンスを同時に1対1の関係で作成する
アフィリエイト(1)----(1)アカウント
class Affiliate(models.Model):
uid = models.CharField(_('Uid'), max_length=128, blank=True, null=True)
[...]
class Account(models.Model):
affiliate = models.OneToOneField(Affiliate, on_delete=models.CASCADE) # Here it goes.
[...]
私は、同じオブジェクトにアフィリエイトとアカウントの両方を参加を検討しましたが、それはちょうどいないようです。それらは異なるモデル実体である。私は実際には1つの場所を除いて常にそれらを常に別々に使用します。特定の組織のアフィリエイトを作成する場合、そのアフィリエイトには作成されたアカウントが必要です。
...私が聞きたいのは、両方のエンティティを同時に作成する方法と、両方を作成して関連付ける方法がありますか?これが私の見解では(AffiliateModelFormポスト)のコードである
form = AffiliateForm(request.POST)
if form.is_valid():
affiliate = form.save()
account = Account()
account.affiliate = affiliate
account.save()
編集:私はform.save()メソッドをオーバーライドする必要がありますか?それですか?
編集2:明確にすることを忘れました。 AffiliateFormは完全なアフィリエイトモデルのフィールドを持ち、アフィリエイトの編集にも使用されるため、AffiliateFormのsaveメソッドをオーバーライドすることは、アフィリエイトのsaveメソッドをオーバーライドするのと同じくらい効果的です。