2012-07-17 4 views
4

실제로 프로젝트가있는 사이트가 있습니다 (색인, 로그인 페이지).앱이 장고에 설치된 경우보기 수정

내 새 앱이 설치된 경우 예를 들어 색인을 조정해야합니다 (예 : 내 앱 모델로 템플릿에 표를 추가하는 링크).

수 있도록해야하는 응용 프로그램의 제거 내가 그렇게 할 수있는 방법

그대로 프로젝트? 가능한가?

답변

5
def my_view(request): 
    from django.conf import settings 
    app_installed = 'app_name' in settings.INSTALLED_APPS 

    return render_to_response(template_name, {'app_installed': app_installed}) 

템플릿 :

{% if app_installed %} 
    ... 
{% endif %} 
+1

응용 프로그램 구성 클래스를 사용하여 응용 프로그램을 활성화 한 경우 실패합니다. [응용 프로그램 레지스트리 사용] (http://stackoverflow.com/a/43189917/244297)보다 좋습니다. –

3

또는 사용자 정의 컨텍스트 프로세서를 사용합니다. settings.py에서 installed_apps.py

from django.conf import settings 

def installed_apps(request): 
    return { 
     'app_installed' : 'app_name' in settings.INSTALLED_APPS 
    } 

에서

:

TEMPLATE_CONTEXT_PROCESSORS = (
    ... 
    'installed_apps.installed_apps' 
) 
4

당신은 장고의 application registry가 사용할 수 있습니다

In [1]: from django.apps import apps 
In [2]: apps.is_installed("django.contrib.admin") 
Out[2]: True 

응용 프로그램이 실제로 점선 파이썬 경로를 사용하여 enabled 될 수 있습니다 그 패키지 또는 응용 프로그램의 구성 클래스 (기본 설정). "app_name"settings.INSTALLED_APPS에 있는지 단순히 확인하는 것은 후자의 경우 실패합니다.