을 변경하지 않고 추상 기본 클래스에서 상속 :변경 모델 나는이처럼 보이는 제품에 대한 간단한 모델이 DB
class Product(models.Model):
name = models.CharField(max_length=80)
# other attributes
우리는 이미이 출시가 있고,이 분야와 DB를 가지고는 작성 .
class BaseProduct(models.Model):
name = models.CharField(max_length=80)
class Meta(object):
abstract = True
을 그리고 같은 제품 클래스를 수정 : I는 기본 클래스에서 상속이 모델을 변경하려면, 그것은 다음과 같습니다 추상 기본 클래스에 대한 이해를 바탕으로
class Product(BaseProduct):
# other attributes
,이 두 가지 설정은 동일한 테이블을 만듭니다 (맞습니까?). 기술적으로,이 모델을 변경 한 후에는 데이터베이스를 수정하지 않아도됩니다. 그러나 South를 사용하여 적용하려고하면 Product 테이블의 'name'열을 삭제하려고합니다.
이미 이러한 테이블이 준비되어 있으므로 다른 솔루션 (예 : OneToOneField)을 사용하는 것과 반대되는 '이름'열을 유지하는 것이 이상적입니다.
감사합니다.
동일한 열을 유지하고 동작 만 재정의 하시겠습니까? – J0HN
Django에 대한 저 코드는 저에게 잘 보입니다 - 두 버전 모두에서'manage.py sql'의 출력이 똑같이 보입니까? 나는 남쪽에서 혼란스러워하는 것으로 의심한다. 아마도 관련이있다 : http://stackoverflow.com/questions/7108899/using-django-south-to-move-from-concrete-inheritance-to-abstract-inheritance –
나에게 생성 된 schemeemigration을 보여 줌 – lalo