gpt4 book ai didi

django 模型 AutoField 错误

转载 作者:行者123 更新时间:2023-12-05 06:43:24 25 4
gpt4 key购买 nike

我有一个这样的模型

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),
),
]

最佳答案

如果您使用 mssql-django,则有一些限制:

目前不支持以下功能:

mssql-django 不支持基于 SQL 的正则表达式命令

在迁移时从或向 AutoField 更改模型字段

https://github.com/microsoft/mssql-django#limitations

关于django 模型 AutoField 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33470560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com