일대일 관계가있는 장고 모델로 작업 중이며 최선을 다하고 있는지 궁금합니다. 방법. 컨텍스트를 제공하기 위해이 클래스는 기본 관계가있는 관련 클래스입니다.Django 1.10 :: 동시에 일대일 관계에서 두 인스턴스를 만듭니다.
제휴 (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.
[...]
나는 동일한 개체에서 가입 및 계정 모두에 합류 고려 못했지만, 그것은 바로 보이지 않는다. 그들은 서로 다른 모델 실체입니다. 사실 한 곳을 제외하고는 항상 별도로 사용합니다. 특정 조직에 대한 제휴사를 만들 때 해당 제휴사는 함께 생성 된 계정이 있어야합니다.
그래서 ... 내가 물어보고 싶은 것은 : 두 엔티티를 동시에 생성하는 더 좋은 방법이 있는가, 다른 탄은 둘 다 생성하고 관련시키는 것입니까? 이것은 내보기에 코드합니다 (AffiliateModelForm에 대한 게시물)입니다
form = AffiliateForm(request.POST)
if form.is_valid():
affiliate = form.save()
account = Account()
account.affiliate = affiliate
account.save()
편집 : 내가 form.save() 메소드를 오버라이드 (override) 할 필요가? 그게 다야?
편집 2 : 명확한 것을 잊었습니다. AffiliateForm은 전체 Affiliate 모델의 필드를 가지며 Affiliate 편집에도 사용됩니다. 따라서 AffiliateForm의 save 메소드를 재정의하는 것은 Affiliate의 save 메소드를 재정의하는 것만 큼 좋습니다.