django '模块'对象没有'call_command'属性
我写了一个函数,代码如下:
def cmd_run(host="localhost", port="8000"):
"""Run server at given host port (or localhost 8000)"""
from django.core import management
host_port = '%s:%s' % (host, port)
management.call_command('runserver', host_port)
当我执行这个函数时,出现了一个异常:
Traceback (most recent call last):
File "/home/leona/workspace/bettyskitchen/lib/djangocliutils/bin/djangoctl", line 8, in <module> cli(*sys.argv[1:])
File "/home/leona/workspace/bettyskitchen/lib/djangocliutils/cmds.py", line 119, in __call__
print method(*args) or ""
File "/home/leona/workspace/bettyskitchen/lib/djangocliutils/cmds.py", line 170, in __call__
return self.method(*args, **kw)
File "/home/leona/workspace/bettyskitchen/lib/djangocliutils/djangocmds/basic.py", line 19, in cmd_run
management.call_command('runserver', host_port)
AttributeError: 'module' object has no attribute 'call_command'
我该怎么解决这个问题呢?
2 个回答
0
这个问题解决了,我用的django版本是0.96,不支持call_command这个功能,所以我换成了:
def cmd_run(host="localhost", port="8000"):
"""Run server at given host port (or localhost 8000)"""
from django.core import management
management.runserver(host, port)
这次可以用了!
0
好吧,这里是可以工作的……也许你用的django版本没有这个功能?你可以试试在管理命令行中输入 python manage.py shell
,然后输入 help(management)
,看看你的版本里有没有这个功能。还有一种可能是 __init__.py
文件被损坏或者修改了(这个文件里定义了 call_command
),在 django.core.management
目录下没有正确导入 call_command
函数。