문제

내가 사용하는 장고가 이라는 파일 models.admin.py 나는 다음을 수행하려는 아이디어에서 models.py:

from "models.admin" import *

그러나 나는 구문 오류가 발생한을 갖는다.하지만 만약 내가 그냥

from models.admin import *

음"ImportError:모듈이 없습니다.admin"

방법은 없을 가져올 파일에 있는 파일의 기간에 그것의 이름은?

도움이 되었습니까?

해결책

사실, 당신 ~할 수 있다 유효하지 않은 모듈을 가져옵니다. 그러나 당신은 사용해야합니다 imp 이를 위해, 예를 들어 파일의 이름이 지정되었다고 가정합니다 models.admin.py, 당신은 할 수 있습니다

import imp
with open('models.admin.py', 'rb') as fp:
    models_admin = imp.load_module(
        'models_admin', fp, 'models.admin.py',
        ('.py', 'rb', imp.PY_SOURCE)
    )

그러나 문서를 읽으십시오 imp.find_module 그리고 imp.load_module 사용하기 전에 사용하기 전에.

다른 팁

만약 너라면 진짜 IMP 모듈을 사용하여 비정상적인 파일 이름 (예 : '.py'이전)을 사용하여 모듈을 가져올 수 있습니다.

>>> import imp
>>> a_b = imp.load_source('a.b', 'a.b.py')
>>> a_b.x
"I was defined in a.b.py!"

그러나 그것은 일반적으로 나쁜 생각입니다. 패키지를 사용하려고 할 가능성이 높습니다.이 경우 "b.py"라는 파일을 포함하는 "a"라는 디렉토리를 만들어야합니다. 그런 다음 "AB 가져 오기"가 A/B.Py를로드합니다.

파일이 호출됩니다 models/admin.py. (원천)

즉, 그것은 호출되어야합니다 admin.py 호출 된 디렉토리에서 models.

그런 다음 사용하여 가져올 수 있습니다 from models.admin import *, 그것이 당신의 파이썬 경로에 있다고 가정합니다.

아니요, 이름에 기간 (또는 물음표 또는 느낌표 등)이 포함 된 경우 Python 파일을 모듈로 가져올 수 없습니다. 파이썬 모듈의 이름 (.py 포함되지 않음)은 유효한 Python 이름이어야합니다 (즉, 변수 이름으로 사용할 수 있음).

당신이지 참조 에 가져오는 문를 참조 모듈패키지.

문서, 그들은 매우 분명하는 문제입니다.

어쨌든 때문에,당신은 당신을 사용하여 장고,일반적인 접근 방식을 작동하지 않습니다.는 경우에 당신을 유지하려는 모델에는 별도의 파일이 아닌 models.py 니다,당신은 추가적인 단계,설명,예를 들어, .

편집:
만,저는 정말로 알지 못하 questioneer 의미를 언급할 때 관리하고 있는지 여부와는 관련 관리 인터페이스의 django.내 포인트는 여전히 서있다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top