考虑以下三个类:
class UUIDModel(models.Model):
id = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4)
class Meta:
abstract = True
class TimeStampedUUIDModel(UUIDModel):
created = models.DateTimeField(auto_now_add=True, editable=False)
modified = models.DateTimeField(auto_now=True, editable=False)
class Meta:
abstract = True
class UsefulClass(TimeStampedUUIDModel):
name = models.CharField(max_length=150, unique=True)
creator = models.ForeignKey('OtherClass', on_delete=models.SET_NULL, null=True)
基于这些类,当我运行makemigrations
命令时,Django 将创建两个迁移(在第一次运行时)。一个包含id
、created
和(!) 字段modified
,name
第二个添加creator
外键。
创建两个迁移而不是一个迁移的原因可能是什么?