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中封装GObject模块进行图形化程序编程的教程
Apr 14 Python
Python中的lstrip()方法使用简介
May 19 Python
Python自定义类的数组排序实现代码
Aug 28 Python
python实现杨辉三角思路
Jul 14 Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
python matplotlib拟合直线的实现
Nov 19 Python
浅谈图像处理中掩膜(mask)的意义
Feb 19 Python
python网络编程:socketserver的基本使用方法实例分析
Apr 09 Python
基于python检查矩阵计算结果
May 21 Python
python Yaml、Json、Dict之间的转化
Oct 19 Python
Python os库常用操作代码汇总
Nov 03 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
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
2006/11/30 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
javascript实现微信分享
2014/12/23 Javascript
javascript的BOM汇总
2015/07/16 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
js时间控件只显示年月
2017/01/08 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
JavaScript错误处理和堆栈追踪详解
2017/04/18 Javascript
vue中七牛插件使用的实例代码
2017/07/28 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
工厂会计员职责
2014/02/06 职场文书
十八届三中全会宣传方案
2014/02/21 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
生物学专业求职信
2014/07/23 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
2015年路政工作总结
2015/05/22 职场文书
音乐之声观后感
2015/06/04 职场文书
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android