2011-01-25 21 views
15

me gustaría ejecutar un comando a través de la función manage.py shell de Django únicamente desde la línea de comandosEjecución de un comando de Shell Django desde la línea de comandos

por ejemplo,

manage.py shell -c "from myapp import models; print models.MyModel.some_calculation()" 

el vino manera que usted puede utilizar la opción -c con el intérprete de Python normales

por ejemplo,

python -c "print 'hello world'" 

Sin embargo, no veo una opción -c equivalente para manage.py shell. ¿Hay alguna forma de hacer esto?

+0

Por favor, no lo haga. Por favor, escriba un archivo de script de dos líneas. –

+1

[ver comandos de administración personalizados] (http://docs.djangoproject.com/en/dev/howto/custom-management-commands/) – virhilo

+0

cmon, eso es estático y aburrido. vea la solución de tubería a continuación. – kraiz

Respuesta

32

Pipe ella;)

echo "print 'hello world'" | python manage.py shell 
+7

o si desea utilizar un archivo: 'cat my_script.py | python manage.py shell' – Alexandre

+0

No estoy seguro de por qué, pero eso no funciona para mí. Estoy obligado a usar 'echo '$ (cat my_script.py)" | python manage.py shell' en su lugar. – christianbundy

+0

Esto no funciona con la sangría :( – frnhr

Cuestiones relacionadas