Python 如何在交互会话中重新加载Django模型而不丢失我的局部变量?

Python 如何在交互会话中重新加载Django模型而不丢失我的局部变量?,python,django,module,ipython,Python,Django,Module,Ipython,我正在用一个交互式shell做一些研究,并使用一个Django应用程序(shell_plus)来存储数据,并使用方便的管理员浏览数据 偶尔我会添加或更改一些应用程序模型,并运行syncdb(或在更改模型时进行南方迁移)。即使我重新导入应用程序模型,对模型的更改也不会在我的交互式会话中生效。因此,我不得不重新启动shell_plus,并在这个过程中丢失了宝贵的local() 有没有办法在会话期间重新加载模型? 谢谢 您可以使用它重建AppCache。不要忘记使用以下方法删除所有*.pyc文件(如果

我正在用一个交互式shell做一些研究,并使用一个Django应用程序(shell_plus)来存储数据,并使用方便的管理员浏览数据

偶尔我会添加或更改一些应用程序模型,并运行syncdb(或在更改模型时进行南方迁移)。即使我重新导入应用程序模型,对模型的更改也不会在我的交互式会话中生效。因此,我不得不重新启动shell_plus,并在这个过程中丢失了宝贵的local()

有没有办法在会话期间重新加载模型? 谢谢

您可以使用它重建AppCache。不要忘记使用以下方法删除所有*.pyc文件(如果有):

find . -name "*.pyc" -exec rm {} \;

否则,reload()将忽略您在models.py文件中所做的更改。

我删除了.pyc文件并运行了代码段——我看到models.pyc会在运行代码段后立即创建(此时没有创建任何其他pyc文件),但model*仍然没有更新。(试图访问新添加的字段时出现AttributeError)知道有什么问题吗?我使用ipython shell进行了尝试。运行代码段后是否重新导入了模型类?是的,仍然无法访问新属性。我是这样做的:向模型添加新字段->运行syncdb->清除pyc文件->运行代码段->重新导入更新的模型->创建模型的新实例->访问新添加的字段也许您可以安装ipython,然后重试。我认为,您必须创建更新模型的新实例。