一、作为主键使用
UUIDField 作为主键使用,必须将primary_key设置为true,default也必须有默认值,这里设置为uuid.uuid4
有一点必须注意,default不能设置为uuid.uuid4()
因为uuid.uuid4()返回的是一个确切的值,每次添加数据的时候默认值都是这个值,而主键是必须有唯一性的,所以就会报错。而uuid.uuid4为一个方法,每次添加数据时都会生成一个新值,满足需求。
二、作为非空字段, null设置为false
三、作为可为空的字段使用
这里建议设置default=None
有主键的表可以与其他表相关联,无主键的话表与表之间无法关联。 主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约在django所定义的model里是可以自己设置主键的,具体方法为
但是要注意的是,为了添加元素的过程中主键的自增,主键的设置中不能加入default属性,否则save()的过程将不再是新建元素而是替换元素。
自己在最开始的定义是
AgentInfo_id = models.IntegerField(default=0)
由于设置了默认值,引发了不小的麻烦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)