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中编写数据库模块的教程
Apr 29 Python
Python itertools模块详解
May 09 Python
Python面向对象编程基础解析(二)
Oct 26 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
python中的不可变数据类型与可变数据类型详解
Sep 16 Python
pyqt 实现在Widgets中显示图片和文字的方法
Jun 13 Python
python字典改变value值方法总结
Jun 21 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
Jul 09 Python
python3的print()函数的用法图文讲解
Jul 16 Python
tensorflow tf.train.batch之数据批量读取方式
Jan 20 Python
Python如何实现小程序 无限求和平均
Feb 18 Python
python使用yaml 管理selenium元素的示例
Dec 01 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
yii框架中的Url生产问题小结
2012/01/16 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
onpropertypchange
2006/07/01 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
python Django模板的使用方法(图文)
2013/11/04 Python
python计算书页码的统计数字问题实例
2014/09/26 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
Python小进度条显示代码
2019/03/05 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
python 字符串常用函数详解
2019/09/11 Python
python随机模块random使用方法详解
2020/02/14 Python
python中如何使用虚拟环境
2020/10/14 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
中科软笔试题和面试题
2014/10/07 面试题
GWT的应用有哪两种部署模式
2012/12/21 面试题
公司营业员的工作总结自我评价
2013/10/05 职场文书
素食餐饮项目创业计划书
2014/02/02 职场文书
服装促销活动方案
2014/02/23 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
工会工作个人总结
2015/03/03 职场文书
二十年同学聚会感言
2015/07/30 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
MySQL事务的隔离级别详情
2022/07/15 MySQL