2010-11-09 1 views
24

간략하게 : Django 응용 프로그램의 정신과 아이디어로 작업하려면 다른 응용 프로그램 내부에서 모델을 가져 오는 것이 좋습니다. 예를 들어, 사용자 통계 응용 프로그램은 다음과 같은 사용자 응용 프로그램에서 모델을 가져옵니다. users.models 가져 오기 사용자Django 응용 프로그램 간의 모델 공유

+2

django에서 모델 이름은 단수이어야합니다. – Ski

답변

15

대중에게 공개 될 가능성이없는 내부 앱을 제작하는 경우 원하는대로 수행하십시오.

대중에게 공개 될 가능성은 거의 없으나 미래/현재 개발자가 사용할 수있는 내부 앱을 제작하는 경우 앱이 제대로 작동하는 데 필요한 사항을 문서화해야합니다.

공개 석방을위한 앱을 제작하려면 자체 의존성을 유지해야합니다 (장고 내부는 가능한 경우 장고가 제공하는 것을 사용하십시오). 실제로 타사 앱이 필요하거나 타사 앱으로 코드를 관리하기 쉽게 만든다면 종속성을 포함 시키되 모두 요구 사항 및 필요한 설정을 문서화하십시오.

대부분의 경우 충분한 문서가있는 한 원하는 거의 모든 작업을 수행 할 수 있습니다.

그러나 나는 User 모델을 django에 내장 된 auth.User과 같은 이름으로 만드는 것에 대한 의문을 제기해야합니다.

+2

정확히 같은 이름이 아니라 정확히 동일한 모델 클래스입니다. –

+0

사용자 및 사용자 통계 응용 프로그램은 제 사례가 이해하기 쉽지 않기 때문에 어디에서나 볼 수 있습니다. 이 질문에 대한 답변, 감사합니다! –

-1

이렇게하지 마십시오. 그들은 동일한 앱 이름을 가지며 ORM은 혼란 스러울 것입니다. 대신 추상적 인 모델을 사용하고 두 모델을 파생시킵니다.

+2

OP가 요구하는 것을 오해하지 않았습니까? 그는 다른 앱에서 모델을 동일하게 정의하는 것에 대해 아무 말도하지 않고 있습니다. 사용자 클래스를 앱에 가져 와서 데이터를 가져올 수 있다고 이야기하고 있습니다. IOW,이 질문에 대한 대답은 "물론 가능합니다."입니다. –

+0

@ 대니얼 : 그런 경우 일 가능성이 있습니다. OP가 그가 찾고있는 것을 분명히한다면, 나는 개정 할 것이다. –

+1

해석에 대해 분명히 틀렸기 때문에이를 수정해야합니다. – Sensei

1

더 잘 시도하십시오 extending the Django User model with inheritance. 사용자 정의 필드가 추가 된 django 사용자를 사용하므로 모든 앱에 대해 동일한 사용자를 갖게됩니다.

+2

나는'auth.User'를 서브 클래스하려고 할 때 문제가 생긴 후에 과거에 IRC (freenode # django)에서 여러 사람들을 보았습니다. 일반적으로, 당신이 그것을 필요로하지 않는다면 멀리 떨어져 있어야하는 것들 중 하나입니다. [사용자 프로필] (http://docs.djangoproject.com/ko/1.2/topics/adst-additional-information-about-users)은 추가 정보를 저장하는 데 일반적으로 선호되는 방법입니다. 사용자. – eternicode

25

대답은 예입니다. django 프로젝트 내의 하나의 응용 프로그램이 다른 응용 프로그램에서 모델을 가져 오는 것은 완벽하게 괜찮습니다. 장고 프로젝트의 힘은 앱과 그 상호 작용에 있습니다.

또한보다 일반적인 응용 프로그램에서 모델을 가져 오는 유틸리티 응용 프로그램이 있는지 확인하십시오. 따라서 "사용자 통계"앱은 "사용자"앱에서 모델을 가져와야하지만 "사용자"앱은 "사용자 통계"에 의존해서는 안됩니다.

응용 프로그램에서 타사 응용 프로그램 (django-piston을 말합니다)을 가져 오는 경우 요구 사항 파일에 해당 모델을 지정해야합니다.