Django 開発者が進歩するにつれて、プロジェクト構造を改善するためにリファクタリングが必要になることがよくあります。組織性と保守性。これには、より適切にカプセル化するためにモデルを独自の個別のアプリに移動することが含まれます。ただし、Django の以前のバージョンでは、外部キーの処理に問題があるため、このプロセスは困難になる可能性があります。
Django 1.7 での移行の導入により、モデルの移行が行われます。アプリ間の管理がより容易になりました。 SeparateDatabaseAndState オペレーションを使用すると、複数のアプリでモデル テーブルの状態を更新しながら、同時にモデル テーブルの名前を変更できます。
<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>
次の手順に従うと、正常に移行できます。 Django 1.7 以降のアプリ間のモデルを統合し、クリーンで保守可能なプロジェクト構造を保証します。
以上がDjango 1.7 の Django アプリ間でモデルを移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。