django中model的主键的设置与自增

django中model的主键的设置与自增,第1张

在django所定义的model里是可以自己设置主键的,具体方法为

但是要注意的是,为了添加元素的过程中主键的自增,主键的设置中不能加入default属性,否则save()的过程将不再是新建元素而是替换元素。

自己在最开始的定义是

AgentInfo_id = models.IntegerField(default=0)

由于设置了默认值,引发了不小的麻烦

在实际开发中,我们有时需要使用UUIDField作为model的字段类型,下面简单介绍一下它的使用方法

一、作为主键使用

UUIDField 作为主键使用,必须将primary_key设置为true,default也必须有默认值,这里设置为uuid.uuid4

有一点必须注意,default不能设置为uuid.uuid4()

因为uuid.uuid4()返回的是一个确切的值,每次添加数据的时候默认值都是这个值,而主键是必须有唯一性的,所以就会报错。而uuid.uuid4为一个方法,每次添加数据时都会生成一个新值,满足需求。

二、作为非空字段, null设置为false

三、作为可为空的字段使用

这里建议设置default=None

alter table [表名] drop primary key 应该是这样写,但是你要先把主键的自动增长去点,才能删除主键 做一朵花.exe 写的 ALTER TABLE table_name DROP field_name 这句可以直接删除主键。如果你的主键没有用的话删了也无所谓


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10825613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存