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中的闭包
Jul 08 Python
Python中元组,列表,字典的区别
May 21 Python
Python基于matplotlib绘制栈式直方图的方法示例
Aug 09 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
python requests 测试代理ip是否生效
Jul 25 Python
对numpy下的轴交换transpose和swapaxes的示例解读
Jun 26 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
python numpy存取文件的方式
Apr 01 Python
Python实现直播推流效果
Nov 26 Python
pycharm不能运行.py文件的解决方法
Feb 12 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
Mar 23 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自动获取目录下的模板的代码
2010/08/08 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
php常用hash加密函数
2014/11/22 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
javascript变量作用域使用中常见错误总结
2013/03/26 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
jQuery数据类型小结(14个)
2016/01/08 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
vue生命周期的探索
2019/04/03 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
详解爬虫被封的问题
2019/04/23 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
亚洲最大旅游体验平台:KKday
2017/10/21 全球购物
党章培训心得体会
2014/09/04 职场文书
大学生暑假实习总结
2015/07/13 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang
详解nginx进程锁的实现
2021/06/14 Servers