Django Docsは、マルチテーブル継承を示すために、この例を使用しています。がマルチテーブル継承のための既存のモデルを既存の
from django.db import models
class Place(models.Model):
name = models.CharField(max_length=50)
address = models.CharField(max_length=80)
class Restaurant(Place):
serves_hot_dogs = models.BooleanField(default=False)
serves_pizza = models.BooleanField(default=False)
私が最初にそうようにレストランのクラスを構築していた場合:
をclass Restaurant(models.Model):
name = models.CharField(max_length=50)
address = models.CharField(max_length=80)
serves_hot_dogs = models.BooleanField(default=False)
serves_pizza = models.BooleanField(default=False)
その後、たくさんのRestaurantオブジェクトが既に作成された後、MTIを使用する方が良いとわかりました。実際にデータを移行して親Placeクラスを作成する良い方法はありますか?
コードの可読性やパフォーマンスを向上させる意味はありますか?たぶんあなたはこの投稿を見てください:http://stackoverflow.com/questions/23466577/should-i-avoid-multi-table-concrete-inheritance-in-django-by-any-means – Nirri
私はあまりありませんあなたは親モデルのオブジェクトを持っていたいと思っていて、あなたが使うことができるようにテーブルを作成したくないのなら、あなたの質問について確かめてください。 'class Meta: Abstract = True' – Amar
私は現在の構造をマルチテーブル継承を使用するように移行したいと考えています。たとえば、名前と住所を持つ 'Office'モデルを追加したいと思います。すべてのアドレスを一意にする必要があります。 PlaceクラスとOfficeクラスを追加し、既存のRestaurantデータを移行して新しいデータ構造を使用したいと考えています。 –