网络编程
位置:首页>> 网络编程>> 数据库>> django 解决model中类写不到数据库中,数据库无此字段的问题

django 解决model中类写不到数据库中,数据库无此字段的问题

作者:小人物哎  发布时间:2024-01-24 17:52:07 

标签:django,model,数据库,字段

如果你遇到了这个错误–MySQL Strict Mode is not set for database connection ‘default'

还有这种错误,models中的代码

django 解决model中类写不到数据库中,数据库无此字段的问题

django 解决model中类写不到数据库中,数据库无此字段的问题

为什么会出现这种错误呢?有两种可能,一种settings少了options,一中是你的models文件中加了逗号

第一种可能

settings中需要添加以下字段


DATABASES = {
 'default': {
   'ENGINE': 'django.db.backends.mysql',
   'NAME': 'mxshop',
   'HOST': '127.0.0.1',
   'PORT': '3306',
   'USER': 'mxshop',
   'PASSWORD': 'BSfdsfdsmxF',
   'OPTIONS': {
     "init_command": "SET default_storage_engine='INNODB'"
   }
 }
}
DATABASES['default']['OPTIONS']['init_command'] = "SET sql_mode='STRICT_TRANS_TABLES'"#排除错误

第二种可能

models.py文件中多加了逗号

django 解决model中类写不到数据库中,数据库无此字段的问题

所以说一定要细心,不要粗心,遇到错误一定要细心,哎,我就…

解决方法,添上option和去掉逗号就ok了呗

去掉逗号之后删库创库,重新输入

python manage.py makemigrations
python manage.py migrate

两条命令,即可

django 解决model中类写不到数据库中,数据库无此字段的问题

把它也记得删了

django 解决model中类写不到数据库中,数据库无此字段的问题

这样就ok了

补充知识:django框架model中外键不落实到数据库

在外键字段的参数中添加db_constraint=False即可,数据库中没有外键关系,代码中依然可以按照正常外键方式使用。

例如:


class User(models.Model):
name = models.CharField(max_length=255)
room = models.ForeignKey(Room, db_constraint=False)
class Room(models.Model):
status = models.IntegerField(default=1)

来源:https://blog.csdn.net/bt517840374/article/details/102630835

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com