2010-08-09 68 views
0

当我执行它,我写了像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' 

我怎样才能解决呢?

回答

0

嗯,在这里工作......也许你的Django的版本还没有这个功能呢?在托管外壳python manage.py shell中尝试它,并尝试help(management)以查看它是否存在于您的版本中。 另一种可能性是django.core.management目录中的__init__.py文件(其中定义了call_command)的损坏或修改,该目录未导入call_command函数。

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) 

这一次,它的工作原理!

+1

我不知道你使用0.96的原因,但我建议如果可能的话升级到更新的版本。 – 2010-08-09 07:44:48

相关问题