Lernen Sie von Daniels Website:
Nachdem die Modellklasse geändert wurde, sollte auch die Datenbank aktualisiert werden. Der Befehl syncdb erstellt jedoch nur Tabellen in der Datenbank und ändert oder löscht das Datenmodell nicht synchron. Zu diesem Zeitpunkt müssen Sie manuell entsprechende Änderungen in der Datenbank vornehmen oder syncdb ausführen, um die Tabelle neu zu erstellen, bevor Sie sie löschen.
Manueller Änderungsprozess:
1. sudo python manage.py sqlall depotapp Alle Felder der Tabelle anzeigen
2. sudo python manage.py dbshell Verwenden Sie die von django bereitgestellte dbshell, um Felder hinzuzufügen
sqlite> begin;
sqlite> alter table depotapp_product add columns date_available data not null;
sqlite> >Tabelle löschen; Many-to-Many-Zuordnung löschen -->Tabelle löschen (automatisch generierte Zuordnungstabelle)}
3. python manage.py Shell-Überprüfungsdatenbank
In [1]: aus depotapp.models Import Produkt
In [2]: Product.objects.all()
Wenn kein Fehler gemeldet wird, ist es in Ordnung