Ich habe ein Base64-Feld, das aus dem Django-Snippet kopiert wird.
%Vor%Ich stehe vor Problemen bei der Migration dieses Feldes z.B.
%Vor%Der Fehler, den ich während der Migration erhalte, ist
%Vor% django.core.exceptions.FieldDoesNotExist: EmailStatus has no field named u'attachment'
Jetzt kann ich sehen, warum das passiert. Aber ich kann keinen Weg finden. Ich denke, ich müsste vielleicht etwas im Bereich der Dekonstruktion ändern. Ich habe mehrere Dinge ausprobiert, aber alle sind kaputt gegangen.
z.B. Entfernen der _base64. Es funktioniert nicht beim Speichern und Abrufen von Daten.
Ich habe versucht, den Namen in der Migrationsdatei zu ändern, der nicht funktioniert.
%Vor%Ich denke, dass die automatische Erkennung von Migrationen wegen der Namensänderung in contribute_to_class verwirrt wird. Ich bin mir nicht sicher, was eine Arbeit sein kann.
Das scheint zu funktionieren. Es gab eine Verwechslung zwischen self.field_name
und name
in contribute_to_class
, was dazu führte, dass der falsche Wert verwendet wurde (daher konnte makemigrations
das Feld nicht beim zweiten Mal / bei Verwendung von migrate
aufnehmen).
Ich habe python3-spezifische Änderungen vorgenommen, nämlich die Aufrufe von super
und die Verwendung von base64
functions. Die set_data
-Methode könnte falsch sein (ich habe das nicht zu sehr untersucht, da Sie möglicherweise python2 verwenden und die Codierung unterschiedlich wäre), aber Migrationen funktionieren.
Zusätzlicher Bonus: Das private_only
Argument fehlt in Ihrer contribute_to_class
Methode.
Hier ist was ich bekomme:
%Vor%Tags und Links django django-migrations