Intente ingresar los comandos al django-shell en ejecución como un documento aquí:
$ sudo python manage.py shell << EOF
user = User.objects.get(username=FooBar)
user.is_active = False
user.save()
exit()
EOF
En primer lugar, no debería acceder a su shell de Python con sudo
. No hay necesidad de estar ejecutándose como root.
En segundo lugar, la forma de crear una secuencia de comandos que se ejecuta desde el símbolo del sistema es escribir una secuencia de comandos manage.py personalizada, para que pueda ejecutar ./manage.py deactivate_users
. Las instrucciones completas para hacerlo se encuentran en la documentación.
Si desea ejecutar un script de Python que acceda a los modelos de Django, primero debe establecer una variable de entorno:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<path>.settings")
En el que debe reemplazar <path>
por el directorio de tu proyecto, el que contiene el archivo settings.py
.
A continuación, puede importar los archivos de su modelo, por ejemplo:
from <path>.models import User
user = User.objects.get(username=FooBar)
user.is_active = False
user.save()