2011-03-06 3 views
12

Django에서는 django-admin.py/manager.py에 대해 custom management commands을 쉽게 쓸 수 있습니다.프로젝트 차원의 사용자 정의 django-admin 명령을 수행하는 방법은 무엇입니까?

그러나이 명령은 전체 프로젝트 수준이 아닌 응용 프로그램 수준에 있습니다. 구현을 <project_dir>/<app_dir>/management/commands 디렉토리에 넣으면 자동 발견됩니다.

프로젝트의 여러 응용 프로그램 중 하나에 묶이지 않은 프로젝트 수준의 명령이 있습니다. 나는 애플 리케이션 중 하나에 그들을 감추고 있지만 장고에 프로젝트 수준의 관리 명령을 구현하는 방법이 있습니까?

답변

14

core 또는 이와 유사한 응용 프로그램을 포함 할 수 있습니다. 응용 프로그램과 관련이없는 응용 프로그램이 포함되어 있습니다. 관리 명령, 템플리트 태그, 모델 및 폼, 데코레이터, 미들웨어 등의 다른 모듈 일 수 있습니다. 프로젝트 디렉토리 자체를 "핵심"응용 프로그램으로 사용할 수 있습니다.

project_name 
    not_reusable_app1 
    not_reusable_app2 
    templatetages 
    tempates 
    utils 
    models.py 
    settings.py 
    management 
    middleware.py 
    forms.py 
    processors.py 
    __init__.py 
parts 
    reusable-app-1 
     reusable_app_1 
     setup.py 
    reusable-app-2 
    reurable-app-3 
    gereric-python-lib 
    django 
setup.py 

INSTALLED_APPS은 일반적으로 다음과 같습니다 :

INSTALLED_APPS = (
    ... 
    'project_name', 
    'project_name.not_reusable_app1', 
    'reusable_app1', 
    ... 
) 

나는 다른 파이썬 패키지 compred 응용 프로그램을 장고 특별한 치료를 제공하지 않습니다 여기에

내가 내 프로젝트를 구성하는 경향이 어떻게 . 예를 들어 나는 apps 또는 유사한 디렉토리에 두지 않습니다.

내 재사용 할 수없는 앱이 프로젝트의 일부 임은 분명합니다. 프로젝트에서 재사용 할 수없는 앱은 대개 프로젝트의 다양한 유틸리티를 사용합니다 (예 : project_name.utils.decorators.some_kind_of_deco).

프로젝트를 응용 프로그램으로 사용하고 싶지 않다면 언급 한 것처럼 project_name.core으로 모든 항목을 이동할 수 있습니다.

+0

우수 제안; 감사! – payne

+0

나는 'core'앱을 weel로 사용했다. –

관련 문제