2016-06-21 7 views
0

Ich versuche, eines meiner Modellfelder (Einheiten) von FloatField in ein IntegerField zu konvertieren.Umbenennen des Django-Modellfelds

Meine Strategie ist dies;
Schritt 1: Hinzufügen '_units' Feld (Integer) Schritt 2: Kopieren von Daten von 'Einheiten' zu '_units'
Schritt 3: 'Einheiten' entfernen
Schritt 4: Umbenennen '_units' als 'Einheiten'

Migrationen für die Schritte 1 - 3 laufen gut, aber in Schritt 4 erhalte ich einen Fehler, wenn ich die Tests durchführe; django.db.utils.OperationalError: keine solche Spalte: myapp_mymodel._units

Für diesen Schritt habe ich eine leere Migration gemacht und dann zu den Operationen hinzugefügt; migrations.RenameField ('MyModel', '_units', 'units')
Wohin gehe ich falsch?

+0

Gibt es ein Problem mit 'migrations.AlterField'? –

+0

Ah ja, viel einfacher. Danke –

+0

Antwort von meinem Kommentar gemacht. –

Antwort

3

Verwenden Sie migrations.AlterField es wird alle 4 Schritte in einem.

+0

Ich wusste nichts davon. In all diesen Monaten habe ich den harten Weg gemacht. LOL. Leben und lernen ... haha! Vielen Dank. –

+0

@Ev. Es kann einige Probleme geben, wenn Sie Felder ändern, die nicht ineinander konvertierbar sind. Also lies die Dokumentation. –

+0

Ja. Nachdem ich deinen Beitrag gesehen habe, ging ich und las die Dokumentation. Es könnte einige Einschränkungen für bestimmte Datenbanken geben, aber für mich wird es ausreichen. –

Verwandte Themen