【问题标题】:How to access a Django model outside a Django project?如何访问 Django 项目外的 Django 模型?
【发布时间】:2022-11-30 23:27:54
【问题描述】:

在查看所有相关的 SO 问题后提出了以下问题,但不幸的是,没有一个答案为我的案例带来解决方案(类似的问题,如:How to access Django models outside of Django?)。

(使用 Django 版本:4.1.1)

有了相关模型可用的应用程序“simo”,数据库访问在 Django shell 中运行良好;但试图从 Django 外部访问它作为“scheduling.py”,它只是行不通。

    import os
    import django
        
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
    django.setup()
        
    from django.db import models
    from simo.models import Tasks

我试图在任何文件夹中执行我的 python 脚本:

  • 在 manage.py 旁边,
  • 在 settings.py 和
  • 在 models.py 旁边,但它们都不起作用。
[mysite]
    [mysite]
        [simo]
            [migrations]
            views.py
            models.py
            urls.py
            __init__.py
            apps.py
            tests.py
            admin.py
        settings.py
        urls.py
        __init__.py
        wsgi.py
        asgi.py
    scheduling.py
    __init__.py
    db.sqlite3
    manage.py

收到的错误是:

C:\...\python.exe C:/.../mysite/scheduling.py
Traceback (most recent call last):
  File "C:\...\mysite\scheduling.py", line 5, in <module>
    django.setup()
  File "C:\...\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\...\lib\site-packages\django\apps\registry.py", line 91, in populate
    app_config = AppConfig.create(entry)
  File "C:\...\lib\site-packages\django\apps\config.py", line 178, in create
    mod = import_module(mod_path)
  File "C:\...\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'simo'

Process finished with exit code 1

谁能告诉我如何解决这个问题?

【问题讨论】:

    标签: django model


    【解决方案1】:

    试试打电话

    from django.db import modelsfrom simo.models import Tasksdjango.setup()之前

    【讨论】:

    • 那是第一次尝试。它不能解决问题。
    猜你喜欢
    • 2017-01-06
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    相关资源
    最近更新 更多