참조, 난과 같이 서로 참조하는 두 모델이 있습니다장고 내가 장고 1.6을 사용하고 서로
class Person(models.Model):
address = models.ForeignKey('Address', blank=False)
class Address(models.Model):
person = models.ForeignKey(Person, blank=False)
이유는 내가 가지고있는 순환 외래 키의 데이터 무결성을 위해입니다. 주소는 정확히 한 명의 사용자에게 할당 될 수 있으며 사용자는 하나 이상의 주소를 가져야합니다. 그리고 예, 나는 이것이 없이는 살 수 있다는 것을 압니다. 그러나 나는 그렇지 않을 것입니다.
외래 키 DEFERRABLE INITIALLY DEFERRED
과 함께 PostgreSQL을 사용하고 있으며 트랜잭션을 사용하여 해당 테이블에 데이터를 삽입하려고합니다. 그러나 transaction.atomic():
을 사용하려고하면 내보기에서 예상대로 작동하지 않습니다. 여기
내가 뭐하는 거지입니다 : 그러나
with transaction.atomic():
addr = Address(street='125 fake street')
addr.save()
person = Person()
person.address_id = addr.id
addr.person_id = person.id
addr.save()
person.save()
, 나는 IntegrityError
을 받고 내가 잘못 제가 addr.save()
어떤 제안을 처음 호출을 유지? 거기에 더 좋은 방법이 있을까요?
사람을 돌려 보내는 경우 템플릿 파일에서 사람 주소를 어떻게 알 수 있습니까? –