私は複数のモデル(django 1.9)に分割しているdjangoモデルを持っています appは多かれ少なかれアイテムやアイテムのセットを追跡するシステムです通常はファイルに関連付けられます。モデルを複数のモデルに分割するためのdjangoの移行を作成する方法
class ItemTypeA(models.Model):
field1 = models.CharField(max_length=512)
...
base_dir = models.CharField(max_length=512)
rel_fname = models.CharField(max_length=512)
:ここ
にも関連するファイルを持っているアイテムの一つのおもちゃの例がある(私は使用して、ファイルのフィールドを行わない理由は、これらのファイルがアップロード、またはユーザーによって追加されていない、これはです)
そのモデルでは、フィールド1でフィルタリングしてから適切なファイルを取得できます(実際のモデルには多くのフィールドがあり、他のモデルとの関係はリストされていません)。さらに多くのタイプのアイテムがあります。
私はファイルの詳細をonetoone関係の別のモデルに移動したいと思います。
これは次のようになります。
class Filesystem(models.Model):
dirpath = models.CharField(max_length=512)
... #Some other details for accessing the system, and system availablity.
class BaseFile(models.Model):
filesystem = models.ForeignKey(Filesystem,related_name="system")
filepath = models.CharField(max_length=512)
md5 = models.CharField(max_length=16, editable=False)
md5_check_datetime = models.DateTimeField()
size = models.IntegerField(verbose_name="file_size")
class Meta:
abstract = True
class ItemTypeAFile(BaseFile):
pass
class ItemTypeA(models.Model):
field1 = models.CharField(max_length=512)
file = models.OneToOneField(ItemTypeAFile)
私は、ファイルシステムがそれぞれのユニークなbase_dir==>dirpath
のために作成され、新しいItemTypeAFileオブジェクトがOldItemTypeA.rel_fname==>ItemTypeAFile.filepath
で作成されていることを、このようにの移行を作成したいと思います。
私はこれでどこから始めるのか本当に知りません。