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操作字符串之rindex()方法的使用
May 19 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
python 借助numpy保存数据为csv格式的实现方法
Jul 04 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
Dec 07 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
python中用ctypes模拟点击的实例讲解
Nov 26 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 Python
Django后端按照日期查询的方法教程
Feb 28 Python
python 如何获取页面所有a标签下href的值
May 06 Python
pytorch fine-tune 预训练的模型操作
Jun 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
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
虫族 Zerg 历史背景
2020/03/14 星际争霸
PHP实现获取FLV文件的时间
2015/02/10 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
Javascript:为input设置readOnly属性(示例讲解)
2013/12/25 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
js实现数字滚动特效
2019/12/16 Javascript
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
2015/04/11 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
python先序遍历二叉树问题
2017/11/10 Python
python 图像平移和旋转的实例
2019/01/10 Python
Python 互换字典的键值对实例
2019/02/12 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
python中time、datetime模块的使用
2020/12/14 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
高一军训的心得体会
2014/09/01 职场文书
民主评议党员工作总结
2014/10/20 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
优秀员工演讲稿
2019/06/21 职场文书
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS