У меня была модель, как этогоДжанго модели AutoField ошибка
class Alrule(models.Model):
priority = models.PositiveIntegerField(unique=True)
rule = models.CharField(max_length=256)
Я мигрировал эту модель. После того, как я решил сделать поле приоритета в качестве первичного ключа с AutoField
Тогда моя модель выглядит следующим образом:
class Alrule(models.Model):
priority = models.AutoField(primary_key=True)
rule = models.CharField(max_length=256)
Я сделал миграцию и перенести эти изменения.
Теперь снова мне нужно было вернуться назад. Теперь я внесла следующие изменения:
class Alrule(models.Model):
priority = models.PositiveIntegerField(unique=True)
rule = models.CharField(max_length=256)
Я сделал миграцию. Теперь, когда я перенесу я получаю следующее сообщение об ошибке:
AssertionError: A model can't have more than one AutoField.
Мое понимание приоритетов поле было установлено значение AutoField раньше, и он не удаляется. Пожалуйста, помогите
Моей первой миграции выглядеть следующим образом:
operations = [
migrations.RemoveField(
model_name='alrule',
name='id',
),
migrations.AlterField(
model_name='alrule',
name='priority',
field=models.AutoField(serialize=False, primary_key=True),
),
]
Второй миграция выглядит следующим образом:
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),
),
]
Можете ли вы опубликовать hte-миграции, которые были сгенерированы для обоих этапов? – solarissmoke
@solarissmoke Я опубликовал созданные миграции – wrufesh