我正在尝试从视图中同步我的数据库,如下所示:
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。任何帮助表示赞赏。
答案 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)