Я новичок ie в Django и имею проблему с наследованием модели.
Мои модели:
class Interaction(models.Model):
nom = models.CharField(max_length=128, unique=True)
lieu = models.ForeignKey(Lieu, on_delete=models.CASCADE, blank=True, null=True)
description = models.TextField(default='...')
acces_libre = models.BooleanField(default=True)
class Heros(Interaction):
user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True)
############# Attributs ##########
corps = models.IntegerField(default=0)
coeur = models.IntegerField(default=0)
esprit = models.IntegerField(default=0)
def __str__(self):
return self.nom
class Personnage(Interaction):
# Attributs
corps = models.IntegerField(default=50)
coeur = models.IntegerField(default=50)
esprit = models.IntegerField(default=50)
def __str__(self):
return self.nom
Мои миграции:
migrations.CreateModel(
name='Interaction',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('nom', models.CharField(max_length=128, unique=True)),
('description', models.TextField(default='...')),
('acces_libre', models.BooleanField(default=True)),
],
),
migrations.CreateModel(
name='Heros',
fields=[
('interaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='aventures.Interaction')),
('corps', models.IntegerField(default=0)),
('coeur', models.IntegerField(default=0)),
('esprit', models.IntegerField(default=0)),
('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
bases=('aventures.interaction',),
),
migrations.CreateModel(
name='Personnage',
fields=[
('interaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='aventures.Interaction')),
('corps', models.IntegerField(default=50)),
('coeur', models.IntegerField(default=50)),
('esprit', models.IntegerField(default=50)),
],
bases=('aventures.interaction',),
),
migrations.AddField(
model_name='interaction',
name='lieu',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='aventures.Lieu'),
),
Если я пытаюсь создать героя в django admin, у меня есть:
no such column: aventures_heros.interaction_ptr_id
Если я пытаюсь создать Персонал:
no such table: aventures_personnage
Я пытался удалить свои миграции, но это не помогло т работа. Я удалил весь свой старый экземпляр из моих старых моделей, он тоже не работал ... Я не понимаю, почему он не работает, может ли кто-то мне помочь?
Спасибо :))