Esta pregunta: Automatically import models on Django shell launch tiene respuestas que explican cómo importar modelos al inicio usando shell_plus, pero no hay respuesta sobre cómo ejecutar el código en general.¿Cómo ejecutar código arbitrario cuando se inicia django shell?
¿Pero hay una forma sencilla de ejecutar un script de Python?
python manage.py shell [or shell_plus] --run=script.py
Simplemente ejecute la secuencia de comandos como si hubiera escrito todo en el inicio de la shell.
Me doy cuenta de que puede importar cosas en el shell, pero luego están atrapadas dentro de un espacio de nombres.
Creo que ipython debería tener una forma de ejecutar un script, y luego importar su locals()
en el espacio de nombres de nivel superior. En ese caso, podría simplemente hacer %magic script.py
y estaríamos solo en un paso, lo que estaría bien.
Cambiar la forma de iniciar el shell debería estar bien; el objetivo principal es simplemente poder crear un archivo que se ejecute al iniciar el shell.
el problema es que no me gustaría que se ejecutara para todas las shells. ¡Utilizo ipython para cosas que no sean django! y shell_plus solo carga modelos. – fastmultiplication