Ich habe ein Modell und eines seiner Felder ist definiert als blank=True, null=True
. Ich änderte beide zu False
und schrieb eine aufrufbare Funktion, die zufällige Zeichenfolgen zurückgibt. Ich setzte diese Funktion als default=
dieses Feldes, und dann lief ich makemigrations
und migrate
, aber ich sehe weiterhin leere Felder in meiner Tabelle.Füllen vorhandener Felder in Django Modell
Ist das erwartete Verhalten? Und wenn ja, wie kann ich alle vorhandenen Felder füllen?
ich Django bin mit 1.10
Standard v Die ORM-Ebene gibt zurück, wenn in der Datenbank für dieses Feld kein Wert angegeben ist. Beim Anwenden von Makemigrationen und Migrieren sollten die Werte in der Datenbank nicht geändert werden. Sie können dieses 'https: // stackoverflow.com/questions/29787853/django-migrations-add-field-with-default-als-Funktion-of-model' für den Fall, dass Sie Feldwerte ändern möchten, überprüfen. –
@ArpitGoyal Dies ist kein DateField (oder Time), also wird 'auto_now' nicht für mich funktionieren. – alexandernst
Etwas, was Sie tun können, ist 'null = False' und' blank = False' einzustellen und Migrationen auszuführen, so dass Django eine Nachricht anzeigt, dass Sie einen Wert für diese leeren Felder angeben müssen und 'str ('random_message')' und verlassen Sie die Shell –