2010-03-04 4 views
1

30 개 이상의 모델을 포함하는 응용 프로그램을 구축하고 있는데 사용자 정의 관리자 나 다른 기능을 모든 모델에 플러그인하는 옵션을 원한다면 추상 기본 모델을 사용하는 것이 좋습니다. 모든 모델과 함께 서브 클래스를 만들거나이를 수행하지 않을 이유가 있습니까?장고 - 모든 모델에 대해 동일한 추상 기본 모델? 좋았어?

답변

2

위대한 ORM 다시 쓰기 전에 장고를 시작 했으므로 모든 콘텐츠 클래스에서 많은 공통 기능을 제공하는 MixIn 클래스를 만드는 습관을 갖게되었습니다.

우리는 모든 모델에서 매우 일관된 명명 체계를 사용했기 때문에 ABC와 유사하지만 Good Old Python 일뿐입니다. 모델 선언은 다음과 같습니다.

class SomeModel(models.Model, MixInClass): 
    pass 
+0

@Peter Thanks. 새로운 ORM으로 계속 그렇게하는 것이 더 낫다고 생각하십니까? 아니면 처음부터 시작한 경우 ABC를 사용 하시겠습니까? – orokusaki

+0

@orokusaki : 좋은 질문이지만, 일반적인 대답은 없습니다. 당시에는 메소드와 비 DB 속성을 추가하는 것에 그치지 않았기 때문에 ABC가 향상시킬만한 일을하지 않았습니다. 내가 모델 상속 (ABC가 아님)을 사용한 최근의 한 프로젝트는 그 영역에서 ORM의 한계에 대한 교훈이었다. 장고 (Django)만큼이나 까다로운 영역이며 앱에 특이한 기이함에 매우 취약합니다. –

+0

1) 다시 한 번 감사드립니다. 2) 강력하게 동의합니다. – orokusaki

관련 문제