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 相关文章推荐
wxpython中Textctrl回车事件无效的解决方法
Jul 21 Python
巧用python和libnmapd,提取Nmap扫描结果
Aug 23 Python
Python用UUID库生成唯一ID的方法示例
Dec 15 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
python使用mysql数据库示例代码
May 21 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
python 实现敏感词过滤的方法
Jan 21 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
Django之使用内置函数和celery发邮件的方法示例
Sep 16 Python
django 将自带的数据库sqlite3改成mysql实例
Jul 09 Python
用Python制作灯光秀短视频的思路详解
Apr 13 Python
基于PyQT5制作一个桌面摸鱼工具
Feb 15 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实现CSV文件的导入和导出类
2015/03/24 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
2007/12/08 Javascript
JavaScript中的Location地址对象
2008/01/16 Javascript
Javascript !!的作用
2008/12/04 Javascript
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
javascript 浏览器检测代码精简版
2010/03/04 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
Python实现简单http服务器
2018/04/12 Python
Python实现代码统计工具
2019/09/19 Python
Pytorch之parameters的使用
2019/12/31 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
DOM和JQuery对象有什么区别
2016/11/11 面试题
宾馆总经理岗位职责
2014/02/14 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
2014年教研室工作总结
2014/12/06 职场文书
2014年平安夜寄语
2014/12/08 职场文书
小学生通知书评语
2014/12/31 职场文书
教师求职自荐信
2015/03/26 职场文书
暑期工社会实践报告
2015/07/13 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang