django在开发中取消外键约束的实现


Posted in Python onMay 20, 2020

我就废话不多说了,大家还是直接看代码吧!

# 在setting设置外键
'OPTIONS': {
   "init_command": "SET foreign_key_checks = 0;",
  }

补充知识:django-给外键关系传值,删除外键关系

反查:

在表关系里 related_name = '反查name',自己不设置,django也会默认设置为class的小写名字+_set , ex: book_set.

一对一关系赋值:

class ModelStudy(View):
 ''' ClassRoom和ClassNumber是一对一关系,给外键传值 '''
 def get(self, request):
  ''' 两种方法 教室ClassRoom和教室编号ClassNumber 外键字段在django类里名(room_number)在数据库名(room_number_id) '''

 # 一.1赋值对象给外键字段
  # room_number = ClassNumber.objects.filter(class_number__exact='003')[0] # d对List切片
  # c = ClassRoom()
  # c.room_number = room_number
  # c.save()
  # 1.2新增数据并赋值对象给新增字段
  room_number = ClassNumber.objects.filter(class_number__exact='003')[0]
  print room_number
  ClassRoom.objects.create(name="python教室", room_number=room_number) # 新增数据



 # 二:获取外键字段(数据库的外键字段名字room_number_id)的值,将相对应的值直接赋值给该外键字段


 class_number = ClassNumber.object.get("id=1").room_number # 获取教室编号具体值 ‘001'


 c = ClassRoom.object.filter(id=1)[0]


 c.room_number_id = class_number # 将‘001'复制给数据库外键字段 外键字段在django类里名(room_number)在数据库名(room_number_id)


 c.save()
return HttpResponse("ojbk")

多对一:

类似一对一,只是 ''多''的一方可以对应多个"一"方。 ps: "一"放通过反查,会有不止一条数据。可以通过+all()获取。

假设两张表:Book书 + Reply评论 表。为多对一,Reply为"多''. 那么"一",Book反查是,Book.object.get(id=1).reply_set.all() # reply_set是不设置related_name时,django自己设置的

多对多:

class ModelStudy(View):
 ''' Students和Teachers是多对多关系 '''
 def get(self, request):
  ''' 两种情况 '''
  # 主类(外键所在类)数据已经存在
  # t = Teachers.objects.get(id=1)
  # s = Students.objects.get(name="学生3")
  # s.teacher.add(t) # 多对多需要add数据
  # s.save()

  # 主类数据不存在,新增数据时, 需先save()
  t = Teachers.objects.get(id=1)
  s = Students(name='xiaodong1', age=10, gender="男")
  s.save() # 先存新增数据
  s.teacher.add(t) # 再给新增数据添加多对多关系 可以add(t, t1, t2)多个对应的关系
  s.save()
  return HttpResponse("ojbk")

删除关系数据

先查出对应的关系数据,在删除

class ModelStudy(View):
 ''' Students和Teachers是多对多关系 '''
 def get(self, request):
  ''' 两种情况 '''
  s = Students.objects.get(id=1)
  t = s.teacher.all() # 多对多 s.teacher是一个<QuerySet>list对象 通过反查取值需要all(),get(),filter之类的
  for x in t: # 删除所有对应关系 haha...
   s.teacher.remove(x)
  return HttpResponse("ojbk")

以上这篇django实现在开发中取消外键约束就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
Python字符串格式化输出方法分析
Apr 13 Python
Python实现多线程抓取网页功能实例详解
Jun 08 Python
Python面向对象编程基础解析(二)
Oct 26 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
Python人脸识别初探
Dec 21 Python
微信跳一跳自动运行python脚本
Jan 08 Python
Python continue继续循环用法总结
Jun 10 Python
深入理解python中sort()与sorted()的区别
Aug 29 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 29 Python
使用Keras构造简单的CNN网络实例
Jun 29 Python
520使用Python实现“我爱你”表白
May 20 #Python
django 外键创建注意事项说明
May 20 #Python
在django admin中配置搜索域是一个外键时的处理方法
May 20 #Python
Python使用Paramiko控制liunx第三方库
May 20 #Python
解决django框架model中外键不落实到数据库问题
May 20 #Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
May 20 #Python
让Django的BooleanField支持字符串形式的输入方式
May 20 #Python
You might like
PHP实现采集程序原理和简单示例代码
2007/03/18 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
超清晰的document对象详解
2007/02/27 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
vue.js单文件组件中非父子组件的传值实例
2018/09/13 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
Python如何读取MySQL数据库表数据
2017/03/11 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
python爬取淘宝商品销量信息
2018/11/16 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
Python猜数字算法题详解
2020/03/01 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
房产继承公证书
2014/04/09 职场文书
司机工作自我鉴定
2014/09/19 职场文书
授权收款委托书
2014/09/23 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
工作检讨书怎么写
2015/01/23 职场文书
材料采购员岗位职责
2015/04/03 职场文书
开学典礼观后感
2015/06/15 职场文书
人民的好儿女观后感
2015/06/18 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript