2010-05-05 52 views
12

我試圖從視圖中同步我的分貝,像這樣的DB:編程同步在Django

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登錄到服務器。任何幫助表示讚賞。

回答

20
management.call_command('syncdb', interactive=False) 
+1

偉大的工作,謝謝! – 2010-05-05 14:04:29

4

是這樣的(至少在Django 1.1):

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