Django在数据库中建表AutoField踩到的小坑
最近毕设刚在开始学用Django来创建mysql数据库中的表,浅记录一下吧,万一以后还会搞混。
众所周知,如果在models.py文件中的类里面没有特意创建一个主键字段,那Django就会自动加入一个自增的主键id字段,那如果我是想把这个id改个名字呢,这个时候就要用到models.AutoField()了。
在models.py文件里编辑完models类之后,要执行python manage.py makemigrations
来完成迁移文件的操作,实际上就是记录models.py文件里面的变化。在app下面有一个migrations文件夹,每执行成功一次makemigrations就会在这个文件夹里面多一个文件,大致内容就是本次执行有了哪些变化。然后再执行python manage.py migrate app_name
就会在数据库里建立models类相应的表。
如果,我已经执行过一次makemigrations,且并没有在类中特意定义一个自增的AutoField,那django就会默认给我创建一个id类。这个时候我要在这个models类中加入一个AutoField,比如userid = models.AutoField(primary_key=True)
,再执行makemigrations,就会出现这样的问题。
让给这个我加上的userid赋一个初始值,自增列怎么会有初始值呢,所以当我赋了初始值,