django에서 Whith 모델 상속을 처리 할 때 수퍼 클래스 자체를 제거하지 않고 모델 하위 클래스의 인스턴스를 제거 할 수 있습니까?Django 모델 상속 : 하위 클래스 삭제 하위 클래스 유지
Django example을 사용하면 Resturaunt
개체 만 제거하고 Place
개체는 유지할 수 있습니까?
django에서 Whith 모델 상속을 처리 할 때 수퍼 클래스 자체를 제거하지 않고 모델 하위 클래스의 인스턴스를 제거 할 수 있습니까?Django 모델 상속 : 하위 클래스 삭제 하위 클래스 유지
Django example을 사용하면 Resturaunt
개체 만 제거하고 Place
개체는 유지할 수 있습니까?
어제이 질문에 대한 답변을 찾고 있었고 문제 해결에 충분했지만 필요에 따라 확장 할 수있었습니다.
당신이 레스토랑과 장소 장고 모델이 가정에만이 같은 "가짜"레스토랑 모델을 만드는 장소의 표 안에 행을 건드리지 않고 레스토랑을 삭제하는 방법 :
class FakeRestaurant(models.Model):
place_ptr = models.PositiveIntegerField(db_column="place_ptr_id", primary_key=True)
serves_hot_dogs = models.BooleanField()
serves_pizza = models.BooleanField()
class Meta:
app_label = Restaurant._meta.app_label
db_table = Restaurant._meta.db_table
managed = False
자,
place = Place.objects.get(pk=1)
restaurant = Restaurant.objects.get(pk=1)
fake_restaurant = FakeRestaurant.objects.get(pk=1)
fake_restaurant.delete()
fake_restaurant 레스토랑이 자리는 그대로 유지됩니다, 더 이상 존재하지 않습니다이 더 경계 외부 관계가없는 것처럼 해당 테이블에서 객체를 검색 할 수 있습니다.
건배, 다비드
1.9 매개 변수keep_parents
이
delete()
기능을 모델링 할 수 있도록 부모를 유지하기 위해 추가 된 장고에서
은 전화 :
restaurant.delete(keep_parents=True)
문서 : https://docs.djangoproject.com/en/1.10/ref/models/instances/#django.db.models.Model.delete
UPDATE :
A 이 기능은 이 아니고 장고 1.9에서 올바르게 작동하는이 아니므로 의견을 참조하십시오.
방금 시도한 결과 1.9 구현에 버그가있는 것으로 보입니다. 상위 오브젝트에 대한 모든 관계는 제거됩니다. 이 문제는 이후 버전의 https://code.djangoproject.com/ticket/27407에서 수정되었습니다. – byoungb
Meta 클래스의 "managed"옵션이 True로 설정되어 있습니다. –
악의적 인 천재입니다 !!! – leech
False로 설정합니다. 편집자는 올바른 들여 쓰기를 유지하지 않았습니다. 감사 : D –