• django models实际操作中遇到的一些问题


    问题1.将主键id改成自动生成的python3 manage.py migrate时报下面的错误

    django.db.utils.InternalError: (1091, "Can't DROP 'id'; check that column/key exists") 我猜测是因为我改了两个表的主键,其中A表主键是B表的外键,删除会有问题 解决方法: 1.删除app下migrations文件夹中000开头的记录文件 2.删掉app对应的数据库drop database 数据库名; 4.重新建立刚刚删除的数据库create database 数据库名; 3.然后重新执行修改数据库的命令: python3 manage.py makemigrations python3 manage.py migrate

    问题2:django向数据库中添加中文时报错

    django.db.utils.InternalError: (1366, "Incorrect string value: '\xE7\x99\xBB\xE5\xBD\x95...' for column 'chinessname' at row 1") 解决方法:创建数据库的时候设置编码格式 CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    问题3:增加主键没生效,每次都只是执行了update

    django的models通过AutoField设置自增主键后,没有递增,代码如下 classelements(models.Model):
    elementid=models.AutoField(primary_key=True,default=1) pageid=models.ForeignKey(page) 解决方法:去掉default=1 如果有default,它实现的是update,只有去掉default,才执行insert

    问题4:models存储包含外键的数据时,报错

    ValueError: Cannot assign "'12'": "elements.pageid" must be a "page" instance. models的数据结构: classpage(models.Model):
    pageid=models.AutoField(primary_key=True) classelements(models.Model):

  • 相关阅读:
    git this exceeds GitHub's file size limit of 100.00 MB
    使用vue-cli创建vue工程
    【转】Visual Studio Code必备插件
    linux安装openssl
    Centos7离线安装mysql8
    使用nmon来按频率采集数据
    Mac下编译android4.0.4遇到的问题
    32位ubuntu16.4编译android4.1.1
    vmvare安装vmtools菜单灰色
    Substrate 使用
  • 原文地址:https://www.cnblogs.com/pyrene/p/6828762.html
Copyright © 2020-2023  润新知