문제

Python의 클래스 C가 주어지면 클래스가 정의 된 파일을 어떻게 결정할 수 있습니까? 클래스 C 또는 C의 인스턴스에서 작동 할 수있는 것이 필요합니다.

내가이 작업을 수행하는 이유는 일반적으로 같은 폴더에 함께있는 파일을 넣는 팬이기 때문입니다. Django 템플릿을 사용하여 HTML로 렌더링하는 클래스를 만들고 싶습니다. 기본 구현은 클래스가 정의 된 파일 이름을 기반으로 템플릿의 파일 이름을 추론해야합니다.

"base/artifacts.py"파일에 LocationArtifact를 클래스로 넣었다고 가정하면 기본 동작이 템플릿 이름이 "base/locationArtifact.html"이기를 원합니다.

도움이 되었습니까?

해결책

당신은 사용할 수 있습니다 검사 다음과 같은 모듈 :

import inspect
inspect.getfile(C.__class__)

다른 팁

노력하다:

import sys, os
os.path.abspath(sys.modules[LocationArtifact.__module__].__file__)

이것은 장고에 대한 잘못된 접근법이며 실제로 일을 강요합니다.

일반적인 django 앱 패턴은 다음과 같습니다.

  • /프로젝트
    • /appName
      • Models.py
      • views.py
      • /템플릿
        • index.html
        • 등.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top