Ich habe ein Problem mit Django 1.2.4.
Hier ist ein Modell:
%Vor%Direkt nach dem Löschen der Datenbank verwende ich die Shell:
%Vor%Was mache ich hier falsch?
Update : Wenn ich das ForeignKey
auskommentiere, verschwindet das Problem.
Update 2 : Seltsamerweise funktioniert dieser Komponententest ganz gut:
%Vor%Warum funktioniert es hier, aber nicht in der Shell?
Update 3 : Der Grund, warum es im Komponententest funktioniert, aber nicht in der Shell, kann etwas mit den verschiedenen verwendeten Datenbanken zu tun haben:
settings.py :
%Vor%Update 4 : Bestätigt, dass alles in Ordnung ist, wenn ich SQLite3 als db benutze.
Ich habe dieses Problem behoben, indem ich die spezifische Tabelle auf das fragliche Modell gesetzt habe. Dann verwendet:
%Vor%Wenn Sie PostgreSQL verwenden, dann empfehle ich, phppgadmin als Web-Interface zu verwenden, das PHPmyadmin ähnelt und für mySQL verwendet wird.
Alternativ zur Benutzeroberfläche können Sie einfach die Befehlszeile
verwenden %Vor%Wenn Sie in \ d sind, drücken Sie die Taste q.
Wenn Sie Django 1.8 verwenden, sollten Sie die Spalte erstellen. Um sicherzustellen, dass Sie die Spalte korrekt erstellen, suchen Sie die Migrationsdatei, in der Sie das Feld erstellt haben, und führen Sie Folgendes aus:
%Vor%Dadurch werden die sql-Befehle zum Erstellen der Spalte ausgegeben. Stellen Sie sicher, dass Sie die Befehle einschließen, die Beziehungen behandeln, und führen Sie die Befehle in Ihrer Datenbankkonsole aus. Sie müssen etwas Extremes tun, wie den Tisch oder die Datenbank fallen zu lassen.
Bitte lesen Sie dies, bevor Sie Ihre gesamte Datenbank löschen
Ich hatte dasselbe Problem. Bitte lesen Sie die Ausnahme vollständig durch. Ich hatte eine ModelForm-Klasse, die aus meiner Tabelle las, um ein Formular zu erstellen, und eine Ausnahme war dort. Ich habe die Makemigrationen auskommentiert und dann komplett ausgeführt. Danach habe ich die ModelForm-Klasse kommentiert und alles funktioniert perfekt.
Hoffe, das hilft.
Ich hatte dasselbe Problem und bemerkte, dass in der Backend-Datenbank das Feld, in dem Fremdschlüssel gespeichert waren, nicht existierte. Das Problem ist verschwunden, nachdem ich das Feld erstellt habe (was ich für merkwürdig halte). Django scheint kein Feld zu erstellen, das als Fremdschlüssel gekennzeichnet ist. Irgendein Grund warum?