복붙노트

[PYTHON] 어떻게 장고에서 파이썬을 사용하여 응용 프로그램 이름을 얻는 지

PYTHON

어떻게 장고에서 파이썬을 사용하여 응용 프로그램 이름을 얻는 지

보기에 있고 Python을 사용하여 응용 프로그램 이름을 검색하려는 경우 (추가 논리에 응용 프로그램 이름이 사용됩니다) 어떻게 할 것입니까?

해결법

  1. ==============================

    1.할 수있는 일 :

    할 수있는 일 :

    from django.core.urlresolvers import resolve
    
    ....
    
    resolve(request.path).app_name
    

    Django에서 현재 응용 프로그램을 얻는 방법과 resolve ()를 참조하십시오.

    편집 : 이제 두 번째 시간을 피하기 위해 request.resolver_match.app_name을 사용하여 가져 오기를 피할 수 있습니다. 다음과 같이하십시오.

    request.resolver_match.app_name
    
  2. ==============================

    2.그것을하는 또 다른 방법은 현재 객체를 얻거나 자기를 사용하는 것입니다. 노호를 보아라.

    그것을하는 또 다른 방법은 현재 객체를 얻거나 자기를 사용하는 것입니다. 노호를 보아라.

    obj.__module__.split('.')
    

    그러면 객체 이름이 '.'로 분리 된 목록이 반환됩니다.

  3. ==============================

    3.어쩌면이게 너를 도울 수있어.

    어쩌면이게 너를 도울 수있어.

    from django.core import urlresolvers
    from django.contrib.contenttypes.models import ContentType
    
    content_type = ContentType.objects.get_for_model(self.__class__) 
    url = urlresolvers.reverse("admin:%s_%s_change" % (content_type.app_label, 
          content_type.model), args=(self.id,)) 
    

    url이 모든 주소를 반환하며 앱 및 모델을 위해 구문 분석 할 수 있습니다.

  4. ==============================

    4.모델 이름 : Book._meta.app_label에서 응용 프로그램 이름을 가져올 수 있습니다.

    모델 이름 : Book._meta.app_label에서 응용 프로그램 이름을 가져올 수 있습니다.

    나는 django / contrib / admin / widgets.py에서 찾았습니다.

    class RelatedFieldWidgetWrapper(forms.Widget):
        ...
        def get_context(self, name, value, attrs):
            from django.contrib.admin.views.main import IS_POPUP_VAR, TO_FIELD_VAR
            rel_opts = self.rel.model._meta
            info = (rel_opts.app_label, rel_opts.model_name)
            ...
        ...
    
  5. ==============================

    5.

    __package__
    

    또는

    __package__.rsplit('.', 1)[-1]
    

    가장 쉬운 방법이어야합니다. 두 번째는 a.b.c를 c로 변환합니다.

  6. from https://stackoverflow.com/questions/6000205/how-to-get-an-app-name-using-python-in-django by cc-by-sa and MIT license