我在抽象模型的帮助下制作了两个非常简单的模型:
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
创建一个永远不会被我使用的表似乎不是最理想的。是否有一种防止这种情况发生的标准方法?
答案 0 :(得分:2)
那是因为你没有宣布它是抽象的:
class Activity(models.Model):
name = ...
class Meta:
abstract = True