2010-05-05 6 views
12

Ich versuche, meine db aus einer Sicht, so etwas zu synchronisieren:synchronisieren Programmatically die db in Django

from django import http 
from django.core import management 

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

Die Frage ist, wird es, indem er für eine Benutzereingabe von dem Endgerät des Dev-Server blockieren . Wie kann ich die Option '--noinput' übergeben, um zu verhindern, dass Sie mich etwas fragen?

Ich habe andere Möglichkeiten, Benutzer als Super-Benutzer zu markieren, also gibt es keine Notwendigkeit für die Benutzereingabe, aber ich muss wirklich syncdb (und flush) programmgesteuert aufrufen, ohne über ssh auf dem Server anmelden. Jede Hilfe wird geschätzt.

Antwort

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

großen Arbeiten, danke! –

4

funktioniert wie folgt (zumindest mit Django 1.1.):

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