1
관련 개체의 delete()
이 즉시 삭제하지 않는다는 것을 알고 있습니다. 필자의 경우 Vader
인스턴스는 instance
매개 변수를 통해 serializer의 update
메서드 매개 변수를 전달합니다.개체 삭제 방법 (즉시)
즉시 v.son
을 어떻게 삭제합니까?
class Vader(models.Model):
pass
class Luke(models.Model):
dad = models.OneToOneField(Vader, related_name='son')
>>> v = Vader()
>>> hasattr(v, 'son')
False
>>> l = Luke(dad=v)
>>> l.save()
>>> hasattr(v, 'son')
True
>>> v.son
<Luke: Luke object>
>>> v.son.delete()
>>> hasattr(v, 'son')
True
>>> v.son
<Luke: Luke object>
. 나는'v = Vader.objects.get (id = v.id)'를해야만했다. 이것이 OneToOne 관계로 할일이 있는지 궁금합니다. 'refresh_from_db()'는'Vader' 테이블을 질의 한 반면'.get()'은 모든'OneToOne' 관련 테이블을 질의했습니다. –
그냥'.delete()'다음에'v.son'이 계속'Luke' 객체 인 것을 추가하면'id' 만 None이됩니다. 이 방법은'.refresh_from_db()'후에도 그대로 유지됩니다. –
나는 hasattr (v, 'son') 및 v.son.id'에 대한 검사를 확장했습니다. 거기에 데이터베이스 쿼리가 없습니다. –