您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何通过“ manage.py shell”使用交互式解释器重新加载Django模型模块?

如何通过“ manage.py shell”使用交互式解释器重新加载Django模型模块?

好吧,我想我必须回答这个问题。问题在于Django将其模型缓存在称为AppCache的单例(类似于单例的结构)中。基本上,要重新加载Django模型,您需要首先重新加载并重新导入存储在AppCache中的所有模型模块。然后,您需要清除AppCache。这是它的代码

import os from django.db.models.loading import AppCache cache = AppCache()

curdir = os.getcwd()

for app in cache.get_apps(): f = app. if f.startswith(curdir) and f.endswith(‘.pyc’): os.remove(f)(app.) reload(app)

from django.utils.datastructures import SortedDict cache.app_store = SortedDict() cache.app_models = SortedDict() cache.app_errors = {} cache.handled = {} cache.loaded = False 我将所有这些都放在Django站点根目录中的一个名为reloadmodels.py的单独文件中。使用IPython,我可以通过运行以下命令重新加载所有内容

%run ~/mysite/reloadmodels.py

Go 2022/1/1 18:22:40 有345人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶