如何防止抽象模型类包含在迁移中

时间:2017-12-29 15:40:43

标签: python django

我在抽象模型的帮助下制作了两个非常简单的模型:

class Activity(models.Model):

    name = models.CharField(max_length = 100)

    def __str__(self):
        return self.name
    __repr__ = __str__

class CardioActivity(Activity):
    pass

class LiftActivity(Activity):
    pass

Activity模型只是一个抽象的模型,并不打算用于任何事情,只是为了节省我两次写相同的东西。但是当我makemigrations时,它会为它创建一个数据库表:

(workout) Sahands-MBP:workout sahandzarrinkoub$ python manage.py makemigrations
Migrations for 'workoutcal':
  workoutcal/migrations/0002_activity_cardioactivity_liftactivity_workout.py
    - Create model Activity ### HERE
    - Create model Workout
    - Create model CardioActivity
    - Create model LiftActivity

创建一个永远不会被我使用的表似乎不是最理想的。是否有一种防止这种情况发生的标准方法?

1 个答案:

答案 0 :(得分:2)

那是因为你没有宣布它是抽象的:

class Activity(models.Model):
    name = ...

    class Meta:
         abstract = True