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 外键相关推荐

  1. Django学习手册 - ORM 数据创建/表操作 汇总

    ORM 查询的数据类型: QuerySet与惰性机制(可以看作是一个列表) 所谓惰性机制:表名.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它 ...

  2. Django学习手册 - ORM数据类型

    DOM 字段/参数 配置格式: Module.字段(参数) 常用的字段归纳: 数字 models.AutoField() 自增列(int),必须设置为主键 models.IntegerField() ...

  3. Django学习手册 - ORM sqlit基础数据库操作

    步骤阐述:( splitDB 是Django自带的一个数据库) 1.在APP01 中的 models.py 配置DB信息  userinfo 相当于数据表的表名,而 uname.pwd 相当于 表中的 ...

  4. 【Python】django模型models的外键关联使用

    [Python]django模型models的外键关联使用 Python 2.7.10,django 1.8.6 外键关联:http://www.bubuko.com/infodetail-61830 ...

  5. sql组合键设置外键_学习SQL:外键

    sql组合键设置外键 In the previous article, we talked about the primary key (PK). In this one, we'll check w ...

  6. Django 学习 之ORM简介与单表操作

    一.ORM简介 1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM). 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到 ...

  7. Django 学习 之ORM多表操作

    一.创建模型 1.模型关系整理 创建一对一的关系:OneToOne("要绑定关系的表名") 创建一对多的关系:ForeignKey("要绑定关系的表名") 创建 ...

  8. Django之Mode的外键自关联和引用未定义的Model

    Django Model的外键自关联 在django的model定义中,有时需要某个Field引用当前定义的Model,比如一个部门(Department)的Model,它有一个字段是上级部门(sup ...

  9. Django学习手册 - 创建Django工程项目以及APP

    前置步骤: 下载python,django 并且安装好 python 解释器以及django模块. 整体步骤阐述: 创建django工程项目 步骤一:进入安装的python目录 步骤二:输入创建工程的 ...

最新文章

  1. HSQLDB安装与使用
  2. 语音识别已成红海,声纹识别正成为AI领域新热点
  3. Ubuntu11.10 GNOME Shell指南
  4. PHP解决方案@时间戳与时间日期
  5. 活体检测方法概述与总结
  6. Python3实现红黑树[下篇]
  7. 二分法变种小结(leetcode 34、leetcode33、leetcode 81、leetcode 153、leetcode 74)
  8. 前端解决跨域的九种方法
  9. 项目实战之服务端分页的实现——SQL
  10. 【Pytorch版本】损失函数大汇总
  11. 高净值人群依靠什么可以挣那么多钱?
  12. Js获取处理日期时间
  13. Java 开发手册 - 编程规约 【控制语句】
  14. 大规模定制基本思想和特点介绍
  15. Qml使用阿里字体图标库及FontAwesome字体图标库
  16. 全国高校计算机能力挑战赛试题,2019年全国高校计算机能力挑战赛 C语言程序设计决赛(示例代码)...
  17. 创维数字--驱动开发岗位面试总结
  18. 2018-8-10-win10-uwp-使用资源在后台创建控件
  19. 各种抠图动态图片_抠图动画
  20. 体验 正式发布 的OSM v1.0.0 版本

热门文章

  1. 使用WITH AS提高性能简化嵌套SQL
  2. block inline 和inline-block 块级元素和内联元素
  3. 网络-console
  4. 2008Server错误
  5. 粒子群优化算法(2)离散粒子群算法
  6. python提取数组元素_python简单获取数组元素个数的方法
  7. 测试面试集-Python接口自动化测试
  8. Python 测试驱动开发(五)测试数据库(上)
  9. 深度学习中常说的向量和表示
  10. python 泰坦尼克号存活率分析