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 将字符串转换成字典dict
Mar 24 Python
Python标准库os.path包、glob包使用实例
Nov 25 Python
Python中使用装饰器来优化尾递归的示例
Jun 18 Python
解决Linux系统中python matplotlib画图的中文显示问题
Jun 15 Python
Python Pillow Image Invert
Jan 22 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
Jun 17 Python
十行代码使用Python写一个USB病毒
Jun 21 Python
pytorch中图像的数据格式实例
Feb 11 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 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
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
php简单检测404页面的方法示例
2019/08/23 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
python合并多个excel文件的示例
2020/09/23 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
代码中finally中的代码会不会执行
2012/02/06 面试题
创业计划书撰写原则
2014/01/25 职场文书
水毁工程实施方案
2014/04/01 职场文书
品质口号大全
2014/06/17 职场文书
贷款委托书
2014/08/01 职场文书
庆元旦演讲稿
2014/09/15 职场文书
体育活动总结
2015/02/04 职场文书
求职自我评价范文
2015/03/09 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python