以编程方式同步Django中的数据库

时间:2010-05-05 12:06:48

标签: python django django-admin

我正在尝试从视图中同步我的数据库,如下所示:

from django import http
from django.core import management

def syncdb(request):
    management.call_command('syncdb')
    return http.HttpResponse('Database synced.')

问题是,它会通过询问终端的用户输入来阻止开发服务器。如何通过'--noinput'选项来防止问我什么?

我有其他方式将用户标记为超级用户,因此不需要用户输入,但我确实需要以编程方式调用syncdb(和flush),而无需登录到服务器通过ssh。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:20)

management.call_command('syncdb', interactive=False)

答案 1 :(得分:4)

这样工作(至少使用Django 1.1。):

from django.core.management.commands import syncdb
syncdb.Command().execute(noinput=True)