Django学习手册 - ORM 外键
Django 外键创建
关键语法:
models.ForeignKey("UserGroup",to_field="gid",default=1,on_delete=models.CASCADE)
参数:
"UserGroup" #外键另外一张表
to_field="gid" #另外一张表的字段
on_delete=models.CASCADE #因为不加这个会报错相关(https://www.cnblogs.com/phyger/p/8035253.html)
创建数据表格:
from django.db import models# Create your models here.class userinfo(models.Model):uname = models.CharField(max_length=32,db_column="用户名")pwd = models.CharField(max_length=32,db_column="密码")email = models.EmailField(null=True,db_column="邮箱")usergroup = models.ForeignKey("UserGroup",to_field="gid",default=1,on_delete=models.CASCADE)class UserGroup(models.Model):gid = models.AutoField(primary_key=True)gname = models.CharField(max_length=32)test = models.CharField(max_length=32,null=True)g = models.ForeignKey("Group", to_field="id",null=True,on_delete=models.CASCADE)class Group(models.Model):grouplist = models.CharField(max_length=255)
在每个字段中都录入数据:
usergroup表 外键 g_id
userinfo表 外键 usergroup_id
跨表查询:原理--(对象(对象(对象)))
obj2 = models.userinfo.objects.filter(uname="root").first() print(obj2.usergroup.g.grouplist)
Django 外键 数据获取
定义表结构:
from django.db import models# Create your models here. class userinfo(models.Model):uname = models.CharField(max_length=255)sex = models.CharField(max_length=12)g = models.ForeignKey("usergroup",to_field="id",on_delete=models.CASCADE,default='1')class usergroup(models.Model):groupname = models.CharField(max_length=255)
外键 数据获取:
def index(request):# #方式一,obj对象方式# ss = models.userinfo.objects.filter(id=1)# # for i in ss :# # print(i) 为一个OBJ 对象# print(i.uname,i.sex,i.g_id,i.g.id,i.g.groupname)#方式二,字典方式# ss2 = models.userinfo.objects.filter(id=1).values("id","uname","g__groupname")# for i2 in ss2 :# # print(i2) 为一个字典对象,根据key取值# print(i2['id'],i2['uname'],i2['g__groupname'])# 方式三,元组方式# ss2 = models.userinfo.objects.filter(id=1).values_list("id","uname","g__groupname")# for i2 in ss2 :# # print(i2) 为一个元组对象,根据索引取值# print(i2[0],i2[1],i2[2])#总结,在利用一对多的表查询时,字典和元组 方式不能直接用 “ . ”(点) 的方式直接取值,否则会直接报错。#取值通过 双下划 线的方式取值。return HttpResponse("OK")
外键创建新数据:
#外键 创建新数据条目: models.userinfo.objects.create(uname="小花",sex="女",g_id="3")#添加一条数据,跨表添加时需引用外键的id,而不是外键对象
转载于:https://www.cnblogs.com/Anec/p/9530194.html
Django学习手册 - ORM 外键相关推荐
- Django学习手册 - ORM 数据创建/表操作 汇总
ORM 查询的数据类型: QuerySet与惰性机制(可以看作是一个列表) 所谓惰性机制:表名.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它 ...
- Django学习手册 - ORM数据类型
DOM 字段/参数 配置格式: Module.字段(参数) 常用的字段归纳: 数字 models.AutoField() 自增列(int),必须设置为主键 models.IntegerField() ...
- Django学习手册 - ORM sqlit基础数据库操作
步骤阐述:( splitDB 是Django自带的一个数据库) 1.在APP01 中的 models.py 配置DB信息 userinfo 相当于数据表的表名,而 uname.pwd 相当于 表中的 ...
- 【Python】django模型models的外键关联使用
[Python]django模型models的外键关联使用 Python 2.7.10,django 1.8.6 外键关联:http://www.bubuko.com/infodetail-61830 ...
- sql组合键设置外键_学习SQL:外键
sql组合键设置外键 In the previous article, we talked about the primary key (PK). In this one, we'll check w ...
- Django 学习 之ORM简介与单表操作
一.ORM简介 1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM). 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到 ...
- Django 学习 之ORM多表操作
一.创建模型 1.模型关系整理 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建 ...
- Django之Mode的外键自关联和引用未定义的Model
Django Model的外键自关联 在django的model定义中,有时需要某个Field引用当前定义的Model,比如一个部门(Department)的Model,它有一个字段是上级部门(sup ...
- Django学习手册 - 创建Django工程项目以及APP
前置步骤: 下载python,django 并且安装好 python 解释器以及django模块. 整体步骤阐述: 创建django工程项目 步骤一:进入安装的python目录 步骤二:输入创建工程的 ...
最新文章
- HSQLDB安装与使用
- 语音识别已成红海,声纹识别正成为AI领域新热点
- Ubuntu11.10 GNOME Shell指南
- PHP解决方案@时间戳与时间日期
- 活体检测方法概述与总结
- Python3实现红黑树[下篇]
- 二分法变种小结(leetcode 34、leetcode33、leetcode 81、leetcode 153、leetcode 74)
- 前端解决跨域的九种方法
- 项目实战之服务端分页的实现——SQL
- 【Pytorch版本】损失函数大汇总
- 高净值人群依靠什么可以挣那么多钱?
- Js获取处理日期时间
- Java 开发手册 - 编程规约 【控制语句】
- 大规模定制基本思想和特点介绍
- Qml使用阿里字体图标库及FontAwesome字体图标库
- 全国高校计算机能力挑战赛试题,2019年全国高校计算机能力挑战赛 C语言程序设计决赛(示例代码)...
- 创维数字--驱动开发岗位面试总结
- 2018-8-10-win10-uwp-使用资源在后台创建控件
- 各种抠图动态图片_抠图动画
- 体验 正式发布 的OSM v1.0.0 版本