Fehlerbehebung "Fehler: Datenbank kann nicht serialisiert werden" bei der Ausführung von dumpdata

9

Aus irgendeinem Grund kann ich heute meine Datenbank nicht mit python manage.py dumpdata oder einem Link, der die mysql-Datei herunterladen kann, ausgeben.

Ich habe versucht, python manage.py dumpdata --traceback zu verwenden und hier sind die Informationen, die ich habe.

%Vor%

Es heißt django.contrib.auth.models.DoesNotExist . Ich frage mich, ob es etwas mit einem Fremdschlüssel oder etwas zu tun hat.

models.py

%Vor%

In meinem models.py wurden kürzlich Feldbenutzer, Datum und Uhrzeit hinzugefügt. Nun, wenn für eines der Clients eines dieser Felder keinen Wert hat, d. H. Leer, erhalte ich den Fehler Unable to serialize database .

Wenn ich Benutzer, Datetime und Notiz in mysql nachgeschlagen habe. Die Tabelle für den Client zeigt user_id, datetime und note an, um Nullwerte zu haben (was ich will). Warum erlaubt es keine Null-Werte?

%Vor%     
Shehzad009 13.07.2011, 14:11
quelle

1 Antwort

5

Sie müssen Django mitteilen, dass NULL-Werte für die zuletzt hinzugefügten Felder zulässig sein sollen. Es betrachtet nur die Definition der Felder, es holt das Schema nicht von der Datenbank.

Der Fehler self.field.rel.to.DoesNotExist wird höchstwahrscheinlich ausgelöst, wenn einem Client kein Benutzer zugeordnet ist und auf client.user zugegriffen wird. Das liegt daran, dass standardmäßig alle Felder benötigt werden. Wenn Sie Ihre Modelldefinition wie unten beschrieben ändern, sollte der Fehler verschwinden.

%Vor%
  • null=True erlaubt NULL bzw. None Werte für ein Feld.
  • Mit blank=True können Sie das Feld in einem Modell leer lassen (zB im Admin).

( blank und null sind standardmäßig False )

    
Jakub Roztocil 02.08.2011, 22:58
quelle

Tags und Links