tengke 发表于 2023-4-13 18:03:28

Model app.Usero can\'t have more than one auto-generated field.

本帖最后由 tengke 于 2023-4-13 18:09 编辑



报错是这个Model app.Usero can't have more than one auto-generated field.
我想保留这个需要怎么做呢
    xb=(
      (1,"男"),
      (2,"女"))
    gen= models.SmallAutoField(verbose_name="xb" ,choices="xb")



isdkz 发表于 2023-4-13 18:03:29

这个错误是因为在Django中,每个模型只允许有一个自动生成的主键。

SmallAutoField是一个自动生成的整数字段,所以当你在同一个模型中使用多个SmallAutoField时,就会出现这个错误。

如果你想保留性别字段并使用选项,你可以使用IntegerField代替SmallAutoField。

这里是修改后的代码:

class Usero(models.Model):
    GENDER_CHOICES = (
      (1, "男"),
      (2, "女"),
    )
    gen = models.IntegerField(verbose_name="性别", choices=GENDER_CHOICES)


这样,gen字段将成为一个普通的整数字段,可以存储性别选项。当你在创建或更新Usero对象时,可以使用GENDER_CHOICES中定义的整数值来设置性别。

sfqxx 发表于 2023-4-13 18:05:02

本帖最后由 sfqxx 于 2023-4-13 18:07 编辑

根据您提供的错误,您正在尝试为 `app.Usero` 模型创建多个自动生成的字段。这是不允许的,因为每个模型只能有一个自动生成的主键字段。

从您提供的代码中,我看到您正在尝试将 `gen` 字段设置为自动生成的字段。但是,该字段是一个 `SmallAutoField` 类型,并且似乎已经定义了一个 `choices` 参数。如果您想将此字段设置为选择字段,则应将 `choices` 参数传递给构造函数,而不是将其值设置为 `"xb"`。

以下是如何更正此问题的示例代码:


xb = (
    (1, "男"),
    (2, "女")
)
gen = models.SmallIntegerField(verbose_name="性别", choices=xb)


在此示例中,我使用 `SmallIntegerField` 而不是 `SmallAutoField` 来表示性别字段。然后,我将 `choices` 参数设置为 `xb`,这将告诉 Django 此字段应该是一个选择字段,并且选项应该是 `(1, "男")` 和 `(2, "女")`。

请注意,上述代码仅显示如何解决报错。如果您希望为 `app.Usero` 模型保留自动生成的主键字段,则需要删除其他自动生成的字段并确保每个模型仅有一个自动生成的主键字段。

isdkz 发表于 2023-4-13 18:05:43

sfqxx 发表于 2023-4-13 18:05


我去,你又占楼,我占楼就有人说我灌水,什么世道{:10_266:}

sfqxx 发表于 2023-4-13 18:07:55

isdkz 发表于 2023-4-13 18:05
我去,你又占楼,我占楼就有人说我灌水,什么世道

你都那么多最佳了,在意这个吗{:10_256:}

tengke 发表于 2023-4-13 18:10:14

isdkz 发表于 2023-4-13 18:05
这个错误是因为在Django中,每个模型只允许有一个自动生成的主键。

SmallAutoField是一个自动生成的整数 ...

那我上面视频上的数据库设置可以正常使用呢

isdkz 发表于 2023-4-13 18:10:25

sfqxx 发表于 2023-4-13 18:07
你都那么多最佳了,在意这个吗

我就差那一点点就冲上首页了{:10_269:}

tengke 发表于 2023-4-13 18:11:19

isdkz 发表于 2023-4-13 18:05
这个错误是因为在Django中,每个模型只允许有一个自动生成的主键。

SmallAutoField是一个自动生成的整数 ...

那为什么我上传的 视频里面的数据库设置是可以正常运行的呢

isdkz 发表于 2023-4-13 18:12:35

tengke 发表于 2023-4-13 18:11
那为什么我上传的 视频里面的数据库设置是可以正常运行的呢

第一张图是视频,第二张图是你自己敲的对吧?

tengke 发表于 2023-4-13 18:15:01

isdkz 发表于 2023-4-13 18:12
第一张图是视频,第二张图是你自己敲的对吧?

第一个是我敲的第二个是视频

isdkz 发表于 2023-4-13 18:15:58

tengke 发表于 2023-4-13 18:15
第一个是我敲的第二个是视频

第二张图中用的是 SmallIntegerField ,不是 SmallAutoField 呀

sfqxx 发表于 2023-4-13 18:26:30

isdkz 发表于 2023-4-13 18:10
我就差那一点点就冲上首页了

啊啊啊!
页: [1]
查看完整版本: Model app.Usero can\'t have more than one auto-generated field.