如何在django-tenants

时间:2018-05-29 10:23:19

标签: django

在我的终端我可以执行 1)第一个命令

python manage.py tenant_command rebuild_index

2)第二个命令。

终端将询问我将执行哪个架构。为此我输入我的模式名称xxx

Enter Tenant Schema ('?' to list schemas): xxx

3)第3个命令我需要在终端

中输入y / n选项

然后我进入

这很好用,所以如何在django中实用地使用管理call_command实现这一点

 management.call_command('python manage.py tenant_command rebuild_index', 'xxx')

但它给出了错误,如

File "/home/hi/venv/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 94, in call_command
    raise CommandError("Unknown command: %r" % name)
CommandError: Unknown command: 'python manage.py tenant_command rebuild_index'

所以请任何机构告诉我是否有可能实现这种交互式终端命令在django中实用运行

3 个答案:

答案 0 :(得分:1)

函数call_command只需要命令名,如下所示:

management.call_command('tenant_command', 'rebuild_index')

试一试,看看是否有效。阅读我链接的文档,有一些例子。

答案 1 :(得分:1)

您需要将架构名称作为名为schema_name的关键字参数传递,以便tenant_command不会提示。您也不需要传递python manage.py

您想要的语法是:

management.call_command('tenant_command', 'rebuild_index', schema_name='xxx')

答案 2 :(得分:0)

我通过在定期任务中运行它而不是每次都运行手动重建索引命令来解决了我的问题。参见下面的代码...

from django.core import management

def hi():
     management.call_command('rebuild_index',schema_name="xxx",interactive=False)