相关疑难解决方法(0)

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

我知道如何在常规Python解释器会话中重新加载常规Python模块.这个问题记录了如何做得很好:

如何卸载(重新加载)Python模块?

出于某种原因,我在Django的"manage.py shell"解释器会话中遇到了麻烦.要重新创建我的问题,请启动此处的基本Django教程:

编写你的第一个Django应用程序,第1部分

创建"民意调查"应用程序和"民意调查"类后,通过"manage.py shell"启动解释器并将"民意调查"应用程序导入其中.

import polls.models as pm
Run Code Online (Sandbox Code Playgroud)

创建一个新的"民意调查"对象:

p = pm.Poll()
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利.现在回到您的源代码并添加任意方法或属性.例如,我添加了:

def x(self):
    return 2+2
Run Code Online (Sandbox Code Playgroud)

现在回到解释器并"重新加载"模块:

reload(pm)
Run Code Online (Sandbox Code Playgroud)

现在尝试使用您的新方法或属性:

p1 = pm.Poll()
p1.x()
Run Code Online (Sandbox Code Playgroud)

你会收到这条消息:

'Poll' object has no attribute 'x'
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?我还尝试重新运行import命令,使用不同的语法导入模块,删除对任何"Poll"对象或"Poll"类的所有引用.我也尝试过使用IPython解释器和普通的Python(v2.6)解释器.似乎没什么用.

在常规解释器会话中使用与任意Python模块相同的技术可以很好地工作.我似乎无法让它在Django的"shell"会话中工作.

顺便说一句,如果它有任何区别,我在Ubuntu 9.04机器上这样做.

python django

53
推荐指数
5
解决办法
2万
查看次数

在IPython中运行Django shell

我试图在IPython中运行Django shell:

ipython manage.py shell
Run Code Online (Sandbox Code Playgroud)

它报告以下错误:

键入"manage.py help"以获取有关特定子命令的帮助.

我搜索并找到了一个流行的解决方案,可以指导您安装django.extensions并启用它settings.

我正在创建一个最小的项目,而解决方案很重.同时,我必须在每个项目上安装并启用它.

有轻量级的方式吗?

我开始一个新项目, python manage.py shell -i ipython无法工作

$ python manage.py shell -i ipython
CommandError: Couldn't import ipython interface.
$ ipython --version
6.4.0
Run Code Online (Sandbox Code Playgroud)

django

27
推荐指数
2
解决办法
8607
查看次数

标签 统计

django ×2

python ×1