Prova a inserire i comandi nella django-shell in esecuzione come documento here:
$ sudo python manage.py shell << EOF
user = User.objects.get(username=FooBar)
user.is_active = False
user.save()
exit()
EOF
In primo luogo, non dovresti accedere alla tua shell Python con sudo
. Non è necessario essere in esecuzione come root.
In secondo luogo, il modo per creare uno script che viene eseguito dal prompt dei comandi è scrivere uno script manage.py personalizzato, in modo da poter eseguire ./manage.py deactivate_users
. Le istruzioni complete per farlo sono nella documentazione.
Se vuoi eseguire uno script Python che acceda ai modelli Django, devi prima impostare una variabile d'ambiente:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<path>.settings")
In cui devi sostituire <path>
dalla directory del tuo progetto, quella che contiene il file settings.py
.
È quindi possibile importare i file del modello, ad esempio:
from <path>.models import User
user = User.objects.get(username=FooBar)
user.is_active = False
user.save()