2016-05-10 7 views
0

Wie löscht man eine Zeile in einer Django-Datenbank auf der Interpreterebene? Ich bin bei der Fehlersuche in einer Datenbank und möchte die Möglichkeit haben, bestimmte Zeilen in einer Django sqlite3-Datenbank als Ziel zu verwenden.Löschen einer Datenbankzeile in der Django SQLITE3-Datenbank

Derzeit kann ich Einträge in der Datenbank erstellen, wie folgt:

>> Item.objects.create(text='Item A') 

Was ich in der Datenbank betrachten:

>> for p in Item.objects.raw('SELECT * FROM appName_model'): 
... print(p.text) 
... 

Und ich richtig die Datenbankinhalte (die Textfelder) erhalten .

Probleme beim Targeting einer bestimmten Zeile nach Index, Text_field oder einem anderen Attribut. Ich arbeite direkt am Python-Interpreter.

Antwort

2
Item.objects.get(text='Item A').delete() 

EDIT:

Im Übrigen hat Django weitere Methoden zur mit Modellen interagieren. Zum Beispiel über die Item-Looping-Objekte:

for item in Item.objects.all(): 
    print item.name 

Quelle: https://docs.djangoproject.com/en/1.9/topics/db/queries/

+0

Dies funktioniert, danke. Obwohl ich hinzufügen muss, habe ich einen Fehler von (django.core.exceptions.AppRegistryNotReady: Modelle sind noch nicht geladen), die gelöst wird über: [[http://stackoverflow.com/questions/25537905/django-1-7 -throws-django-core-ausnahmen-appregistrynotready-models-arent-load]], indem VOR dem Löschen im Python-Interpreter der Befehlszeile Folgendes hinzugefügt wird: >> from django.core.wsgi import get_wsgi_application >> application = get_wsgi_application() – Jeeves

+1

Groß! Und ... Sie können 'python manage.py shell' verwenden, um das für Sie zu tun. – justdavey

+0

Wie würde ich das erste Element, das zweite Element usw. löschen? – Jeeves

Verwandte Themen