2010-05-05 8 views
12

Estoy intentando sincronizar mi db desde un punto de vista, algo como esto:sincronizar mediante programación el PP en Django

from django import http 
from django.core import management 

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

La cuestión es, bloqueará el servidor dev pidiendo la entrada del usuario desde el terminal . ¿Cómo puedo pasarle la opción '--noinput' para evitar preguntarme algo?

Tengo otras formas de marcar a los usuarios como superusuario, por lo que no es necesario que el usuario ingrese, pero realmente necesito llamar a syncdb (y flush) programáticamente, sin iniciar sesión en el servidor a través de ssh. Cualquier ayuda es apreciada.

Respuesta

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

funcionó muy bien, gracias! –

4

funciona así (al menos con Django 1.1.):

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