Mit zunehmendem Fortschritt eines Django-Entwicklers wird zur Verbesserung häufig eine Umgestaltung der Projektstruktur erforderlich Organisation und Wartbarkeit. Dazu gehört das Verschieben von Modellen in ihre eigenen individuellen Apps zur besseren Kapselung. Allerdings kann dieser Prozess in früheren Django-Versionen aufgrund der Herausforderungen beim Umgang mit Fremdschlüsseln entmutigend sein.
Mit der Einführung von Migrationen in Django 1.7 werden Modelle migriert zwischen Apps ist überschaubarer geworden. Mit der SeparateDatabaseAndState-Operation können wir eine Modelltabelle gleichzeitig umbenennen und gleichzeitig ihren Status in mehreren Apps aktualisieren.
<code class="python">python manage.py makemigrations old_app --empty</code>
<code class="python">class Migration(migrations.Migration): dependencies = [] database_operations = [ migrations.RenameModel('TheModel', 'newapp_themodel') ] state_operations = [ migrations.DeleteModel('TheModel') ] operations = [ migrations.SeparateDatabaseAndState( database_operations=database_operations, state_operations=state_operations) ]</code>
<code class="python">python manage.py makemigrations new_app</code>
<code class="python">class Migration(migrations.Migration): dependencies = [ ('old_app', 'above_migration') ] state_operations = [ migrations.CreateModel( name='TheModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ], options={ 'db_table': 'newapp_themodel', }, bases=(models.Model,), ) ] operations = [ migrations.SeparateDatabaseAndState(state_operations=state_operations) ]</code>
Durch Befolgen dieser Schritte können Sie erfolgreich migrieren Modelle zwischen Apps in Django 1.7 und höher, um eine saubere und wartbare Projektstruktur sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie migriere ich Modelle zwischen Django-Apps in Django 1.7?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!