问题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设置自增主键后,没有递增,代码如下
class elements(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的数据结构:
class page(models.Model):
    pageid=models.AutoField(primary_key=True)
    
class elements(models.Model):
    elementid=models.AutoField(primary_key=True)
    pageid=models.ForeignKey(page)
 
解决方法:
page对象的paged是elements的外键,在使用save时,需要传递一个page对象实例
elements(pageid=page.objects.get(pageid=xxx).save()
 

django models实际操作中遇到的一些问题的更多相关文章

  1. Django models 操作高级补充

    Django models 操作高级补充 字段参数补充: 外键 约束取消 ..... ORM中原生SQL写法: raw connection extra

  2. Django models Form model_form 关系及区别

    Django models Form model_form

  3. Django models .all .values .values_list 几种数据查询结果的对比

    Django models .all .values .values_list 几种数据查询结果的对比

  4. django models数据类型

    Django Models的数据类型 AutoField IntegerField BooleanField true/false CharField maxlength,必填 TextField C ...

  5. django models 类型整理 version:1.8.3

    django models 类型整理 version:1.8.3 网上百度到的最上面的一篇已经是11年的了,django变化很大,现在把1.8.3版的models类型大致整理了下贴出来 普通键部分 F ...

  6. django models的点查询/跨表查询/双下划线查询

    django models 在日常的编程中,我们需要建立数据库模型 而往往会用到表与表之间的关系,这就比单表取数据要复杂一些 在多表之间发生关系的情形下,我们如何利用models提供的API的特性获得 ...

  7. Django models中关于blank与null的补充说明

    Django models中关于blank与null的补充说明 建立一个简易Model class Person(models.Model): GENDER_CHOICES=( (1,'Male'), ...

  8. Django Models的数据类型汇总

    https://blog.csdn.net/devil_2009/article/details/41735611 Django Models的数据类型 汇总 AutoField IntegerFie ...

  9. Django - models.py 应用

    Django - models.py 应用 编写 models.py 文件 from django.db import models # Create your models here. class ...

随机推荐

  1. iOS oc 检测手机移动网络和wifi是否开启

    利用Reachability的的一个方法currentReachabilityStatus 获取枚举类型值判断是否为2即可,不是2就不是WiFi. enum {        // DDG Netwo ...

  2. spark historyserver 页面反应很慢 jvm堆调参

    我们的spark historyserver 最近页面打开很慢 jstat -gcutil pid 1000 发现full gc 相当严重 查看堆大小,发现默认堆1G,打算修改到4G jps -lvm ...

  3. java 正则 贪婪匹配 匹配sql语句中的引号内容

    public class Demo { public static void main(String[] args) { String sql1 = "use test;select * f ...

  4. VUE 前端项目优化方法

    前端项目通过webpack打包会生成app.js和vendor.js,如果第三方组件依赖过多,会造成打包后的vendor.js过大,页面首次加载的时候会出现白屏时间过长,影响用户体验.对此,我们需要通 ...

  5. 上下两个div, 一个固定高度, 另一个铺满屏幕

    <div class="box"> <div class="el1"></div> <div class=" ...

  6. jquery 全选操作

    $(function(){ $("#checkedAll").change(function(){ if(this.checked){ $(".checkSingle&q ...

  7. 集合,ArrayList

    用集合代替数组: Console.Write("请输入人数:"); int renshu = int.Parse(Console.ReadLine()); ArrayList ch ...

  8. Python运算符,基本数据类型

    1,基本的运算符: 加,减,乘,除 取余(%)   取商(//)   **(幂) in    not in (判断是否在里面) 1.运算符        结果是值            算数运算   ...

  9. 通过SSH克隆远程仓库(GitLab)到本地

    由于不是任何用户都能从远程仓库克隆到本地的,也是需要鉴别的,因此本地需要用git bash 创建一个公钥,而远程仓库也要把这个公钥保存下来,进而本地才可以从远程download.主要步骤如下: 1.首 ...

  10. linux 排查page的状态问题

    最近遇到一个page的释放异常的问题,堆栈如下: [ 1000.691858] BUG: Bad page state in process server.o pfn:309d22 [ mapcoun ...