J'ai eu un modèle comme celui-cimodèle django d'erreur AutoField
class Alrule(models.Model):
priority = models.PositiveIntegerField(unique=True)
rule = models.CharField(max_length=256)
Je migré ce modèle. Après avoir décidé de faire champ priorité clé primaire avec AutoField
Alors mon modèle ressemblait à ceci:
class Alrule(models.Model):
priority = models.AutoField(primary_key=True)
rule = models.CharField(max_length=256)
J'ai fait une migration et la migration de ce changement.
Maintenant encore une fois je devais revenir en arrière. Maintenant j'ai fait les changements suivants:
class Alrule(models.Model):
priority = models.PositiveIntegerField(unique=True)
rule = models.CharField(max_length=256)
J'ai fait une migration. Maintenant, quand j'émigre je reçois l'erreur suivante:
AssertionError: A model can't have more than one AutoField.
Ma compréhension est la priorité terrain a été mis à AutoField avant et il n'est pas supprimé. S'il vous plaît aider
Ma première migration ressemble à ceci:
operations = [
migrations.RemoveField(
model_name='alrule',
name='id',
),
migrations.AlterField(
model_name='alrule',
name='priority',
field=models.AutoField(serialize=False, primary_key=True),
),
]
Deuxième migration ressemble à ceci:
operations = [
migrations.AddField(
model_name='alrule',
name='id',
field=models.AutoField(auto_created=True, primary_key=True, default=2, serialize=False, verbose_name='ID'),
preserve_default=False,
),
migrations.AlterField(
model_name='alrule',
name='priority',
field=models.PositiveIntegerField(unique=True),
),
]
Pouvez-vous publier des migrations hte qui ont été générées pour les deux étapes? – solarissmoke
@solarissmoke J'ai posté des migrations générées – wrufesh