2017-12-29 4 views
0

ich zwei sehr einfache Modelle mit Hilfe eines abstrakten Modell gemacht habe: istWie abstrakte Modellklasse zu verhindern, dass in Migrationen enthalten ist

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 

Das Activity Modell nur ein abstraktes Modell, das soll nicht auf für alles verwendet werden, nur um mich zu retten, das gleiche zweimal zu schreiben. Aber wenn ich makemigrations, ist es für sie eine Datenbanktabelle erstellt:

(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 

Es scheint suboptimalen eine Tabelle zu erstellen, die nie von mir verwendet werden soll. Gibt es eine Standardmethode, dies zu verhindern?

Antwort

2

Das ist, weil Sie es nicht erklären, haben abstrakt zu sein:

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

    class Meta: 
     abstract = True 
Verwandte Themen