【问题标题】:How to import a model to a python file within my django project?如何将模型导入我的 django 项目中的 python 文件?
【发布时间】:2019-04-22 06:23:50
【问题描述】:

我的 Django 应用文件夹中有 models.pytest.py 文件。

我的项目名为strava,app:explorer_api

如何将模型导入“test.py”?

我试过了:

from strava.explorer_api.models import Activity
from explorer_api.models import Activity
from .models import Activity
from models import Activity

但是:

SystemError: 父模块''未加载,无法执行相对 进口

结构:

/
    admin.py
    apps.py
    collector.py
    models.py
    serializers.py
    test.py
    tests.py
    urls.py
    views.py
    __init__.py
migrations/
    0001_initial.py
    __init__.py
    __pycache__/
        0001_initial.cpython-35.pyc
        __init__.cpython-35.pyc
templates/
    explorer_api/
        index.html
        save.html
__pycache__/
    admin.cpython-35.pyc
    collector.cpython-35.pyc
    models.cpython-35.pyc
    serializers.cpython-35.pyc
    urls.cpython-35.pyc
    views.cpython-35.pyc
    __init__.cpython-35.pyc

【问题讨论】:

  • explorer_api 中有__init__.py 文件吗?
  • 是的,我愿意......
  • 您介意发布您的文件结构吗?

标签: python django


【解决方案1】:

您的 INSTALLED_APPS 中有 explorer_api 吗?

另外,在tests.py 中只保留一个导入:

from explorer_api.models import Activity

【讨论】:

    【解决方案2】:

    看看这个Django script to access model objects without using manage.py shell 如果 strava 是您的项目目录,那么

    大于等于 Django 1.9-1.10

    import sys, os, django    
    sys.path.append('full_path_to_strava_directory')
    os.environ['DJANGO_SETTINGS_MODULE'] = 'strava.settings'
    django.setup()
    
    from strava.activity.models import Activity
    

    Django 1.11 之前

    from strava.wsgi import application
    from strava.activity models import Activity
    

    【讨论】:

    • 我建议使用os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'strava.settings'),这样环境变量DJANGO_SETTINGS_MODULE如果已经存在就不会被覆盖。
    猜你喜欢
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2019-01-01
    • 1970-01-01
    相关资源
    最近更新 更多