有没有类似于django-extensions shell_plus的方法可以在PyCharm Django控制台中自动加载模型?
import sys
import django
django.setup()
from django.apps import apps
for _class in apps.get_models():
globals()[_class.__name__] = _class
补充一下Yunti的回答,如果你想要将模型放在“models”模块中,你可以在运行脚本中动态创建一个模块,并将所有的模型添加到其中:
import sys
sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])
import django
django.setup()
import types
from django.apps import apps
models = types.ModuleType('models')
for _class in apps.get_models():
setattr(ext_models, _class.__name__, _class)
import sys
sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])
import django
django.setup()
import types
from django.apps import apps
from your_project.your_app import models as your_models # and views and tests and all the modules you want to import :)
ext_models = types.ModuleType('ext_models')
for _class in apps.get_models():
_class_name = _class.__name__
if not hasattr(your_models, _class_name):
setattr(ext_models, _class_name, _class)