Versuchen Sie, die Befehle in die laufende Django-Shell als folgendes Dokument einzugeben:
$ sudo python manage.py shell << EOF
user = User.objects.get(username=FooBar)
user.is_active = False
user.save()
exit()
EOF
Erstens sollten Sie nicht mit sudo
auf Ihre Python-Shell zugreifen . Sie müssen nicht als root ausgeführt werden.
Zweitens besteht die Möglichkeit, ein Skript zu erstellen, das von der Eingabeaufforderung aus ausgeführt wird, darin, ein benutzerdefiniertes manage.py-Skript zu schreiben, damit Sie ./manage.py deactivate_users
ausführen können . Vollständige Anweisungen dazu finden Sie in der Dokumentation.
Wenn Sie ein Python-Skript ausführen möchten, das auf Django-Modelle zugreift, müssen Sie zunächst eine Umgebungsvariable setzen:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<path>.settings")
In dem Sie <path>
ersetzen müssen nach Ihrem Projektverzeichnis, das die Datei settings.py
enthält .
Sie können dann Ihre Modelldateien importieren, zum Beispiel:
from <path>.models import User
user = User.objects.get(username=FooBar)
user.is_active = False
user.save()