2009-08-27 2 views
11

나는 모델 클래스들을 서로 다른 파일들로 나누는 것이 장고의 내장 된 기능들을 깨뜨리는 것을 배웠다.django가 모든 모델 클래스를 models.py에 적용하도록하는 이유는 무엇입니까?

나는 자바 배경에서 왔습니다. 아주 긴 클래스 파일을 작성하는 것은 좋은 습관으로 받아 들여지지 않습니다. 하지만 django가 모든 모델 클래스에 대해 단일 파일을 적용하면 프로그래머는 매우 긴 models.py 파일을 작성하게됩니다. 이것은 프로그래머가 전체 도메인 모델의 구성을 보는 것을 어렵게 만듭니다.

그럼 왜 장고가 모든 도메인 클래스를 포함하도록 단일 파일을 적용합니까?

Google 검색으로이 문제에 a solution proposal을 발견했습니다. 그러나 이것이 제대로 작동하는지 확신 할 수 없습니다. 이 솔루션을 제안 하시겠습니까?

+0

링크가 작동하지 않습니다. 업데이트 해 주시겠습니까? – Gabriel

+0

가능한 [models.py 거대한지고, 가장 좋은 방법은 무엇입니까?] (http://stackoverflow.com/questions/1160579/models-py-getting-huge-what-is-the-best -way-to-break-it-up) – Ajoy

답변

7

단일 네임 스페이스 : 예. 단일 모듈 : 아니오.

모델을 appname.models 네임 스페이스에서 가져올 수 있어야합니다.

+0

이 답변은 아마도이 질문에 대한 정답 일 것이지만 분명히 명확해질 수 있습니다. 기본적으로'appname.models'는 다른 모듈에서 모든 모델을 가져와야한다는 것을 의미합니다. 이유 또는이 동작이 문서화 된 위치에 대한 설명이 도움이 될 것입니다. – SpoonMeiser

+0

마찬가지로, 왜'appname.models'을 사용하면 다른 모델을 정의하는 모듈만으로는 충분하지 않을까요? 확실하게 그것이 필요한 메타 클래스 마법을 일으킬 것입니까? 그렇지 않다면, 왜? – SpoonMeiser