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 相关文章推荐
python3实现短网址和数字相互转换的方法
Apr 28 Python
python数组过滤实现方法
Jul 27 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
May 31 Python
Pandas探索之高性能函数eval和query解析
Oct 28 Python
Python 函数基础知识汇总
Mar 09 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
python pygame实现挡板弹球游戏
Nov 25 Python
Python装饰器用法与知识点小结
Mar 09 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
python request 模块详细介绍
Nov 10 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 Python
python 基于pygame实现俄罗斯方块
Mar 02 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
用libTemplate实现静态网页的生成
2006/10/09 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
php smarty模板引擎的6个小技巧
2014/04/24 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
php实现三级级联下拉框
2016/04/17 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
专科毕业生自我鉴定
2013/12/01 职场文书
投资合作协议书范本
2014/04/17 职场文书
投标承诺书怎么写
2014/05/24 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
2015年财务部工作总结
2015/04/10 职场文书
党员转正申请报告
2015/05/15 职场文书
学校财务管理制度
2015/08/04 职场文书
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android