views:

138

answers:

2

I'm trying to sync my db from a view, something like this:

from django import http
from django.core import management

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

The issue is, it will block the dev server by asking for user input from the terminal. How can I pass it the '--noinput' option to prevent asking me anything?

I have other ways of marking users as super-user, so there's no need for the user input, but I really need to call syncdb (and flush) programmatically, without logging on to the server via ssh. Any help is appreciated.

+3  A: 

Works like this (at least with Django 1.1.):

from django.core.management.commands import syncdb
syncdb.Command().execute(noinput=True)
maersu
+4  A: 
management.call_command('syncdb', interactive=False)
rebus
Worked great, thanks!
Attila Oláh