ORM中一对一在当一张表的某一些字段查询的比较频繁,另外一些字段查询的不是特别频繁,那么就把不常用的字段单独拿出来做成一张表,然后通过一对一进行关联起来。举个例子:在我们登录某个账户的时候,一般会显示用户名,头像,而没有显示年龄,兴趣爱好,只有当点击用户详细信息的时候才显示这些年龄,兴趣爱好,所以一般将用户名,头像等作为用户表,而年龄,兴趣爱好就作为用户详细表。

一对一的优势:既保证数据都完整的保存下来,又能保证大部分的检索更快

ORM中一对一的用法:OneToOneField(to="表名")

模型类:

  1. class Student(models.Model):
  2. """
  3. 学生表
  4. """
  5. id=models.AutoField(primary_key=True)
  6. name=models.CharField(max_length=10)
  7. pwd=models.CharField(max_length=30)
  8. detail_id=models.OneToOneField(to="StudentDetail") # 通过OneToOneField字段将StudentDetail表联系到一起
  9.  
  10. class StudentDetail(models.Model):
  11. """
  12. 学生表详细信息
  13. """
  14. id=models.AutoField(primary_key=True)
  15. sex=models.CharField(max_length=2)
  16. hobby=models.CharField(max_length=50)

一对一查询

  1. def one_to_one(requestt):
  2. """
  3. 一对一查询步骤:
  4. 1.先获取某个用户object
  5. 2.然后通过object.一对一外键就获得了详细表的模型信息
  6. 3.可以通过拿到模型表信息再获取具体的数据
  7. :param requestt:
  8. :return:
  9. """
  10. get_user=models.Student.objects.get(id=7)
  11. get_userdetail=get_user.detail_id
  12. print(type(get_userdetail))
  13. print(get_userdetail)
  14.  
  15. return HttpResponse("ok")

Django框架之ORM的相关操作之一对一关系(四)的更多相关文章

  1. Django框架之ORM的相关操作(一)

    一.一般操作 from django.db import models import datetime # Create your models here. class Author(models.M ...

  2. Django框架之ORM的相关操作之分页(六)

    分页是每个项目必不可少要写的一个功能,该篇文章就将记录一下使用ORM写分页的过程. 假设我们的数据库里面需要显示一些数据,而这个表中的数据大约有几千条数据,那么我们不可能将所有的数据都显示出来,那么就 ...

  3. Django框架之ORM的相关操作之多对多三种方式(五)

    在之前的博客中已经讲述了使用ORM的多对多关系表,现在进行总结一下: 1.ORM自动帮助我们创建第三张表 2.手动创建第三张表,第三张表使用ForeignKey指向其他的两张表关联起来 3.手动创建第 ...

  4. Django框架之ORM的相关操作(二)

    模型类: class Commongity(models.Model): id=models.AutoField(primary_key=True) name=models.CharField(max ...

  5. Django框架06 /orm多表操作

    Django框架06 /orm多表操作 目录 Django框架06 /orm多表操作 1. admin相关操作 2. 创建模型 3. 增加 4. 删除 5. 修改 6. 基于对象的跨表查询 7. 基于 ...

  6. Django框架05 /orm单表操作

    Django框架05 /orm单表操作 目录 Django框架05 /orm单表操作 1. orm使用流程 2. orm字段 3. orm参数 4. orm单表简单增/删/改 5. orm单表查询 5 ...

  7. Django框架之ORM对表结构操作

    ORM的优点:(1)简单,不用自己写SQL语句 (2)开发效率高 ORM的缺点:对于不同的人写的代码,执行效率有差别 ORM的对应关系: 类  ---------->  数据表 对象------ ...

  8. django框架基础-ORM跨表操作-长期维护

    ###############    一对一跨表查询    ################ import os if __name__ == '__main__': os.environ.setde ...

  9. django框架基础-ORM单表操作-长期维护

    ###############    单表操作-添加数据    ################ import os if __name__ == '__main__': os.environ.set ...

随机推荐

  1. javascript当中prototype用法

    prototype见上一节,马克-to-win:prototype作用就是给某个类增加一个实例方法. 例 3.6.2 <head>    <meta http-equiv=" ...

  2. Qt VS Tools插件官方下载及安装

    下载 官方下载地址:https://download.qt.io/development_releases/vsaddin/(国外网站直接打开超级慢) 找到对应的VS版本下载 安装 下载完成后安装,打 ...

  3. 0005 修改Django工程名

    写框架非常耗时间,把框架写好以后,经测试稳定的框架,需要保存下来,以后有工程需要,直接更改工程名即可. 01 右键点击工程名,点击Refactor/Rename 02 选择更改工程名 03 关闭PyC ...

  4. ubuntu19.04 安装mysql,没有初始密码,重设初始密码

    1.安装 在终端下输入 sudo apt-get install mysql-server mysql-client 进行安装,如果安装过程中弹出密码输入提示,则正常安装即可! 2.由于没有出现密码设 ...

  5. 使用正则提取字符串中URL等信息

    一.说明 背景:最近在做同步京东商品信息时遇到一个问题,同步后的商品详情无法在富文本中修改,强制修改会导致图片无法正常显示,研究发现详情中的图片是在css的作为背景图指定的. 解决:经过多次尝试,最后 ...

  6. django 自定义url转换器

    django内置的url转换器,包括有int.str.uuid等等.但是有时候他们不能满足我们的需求,因此就需要使用自定义url转换器.自定义url转换器的五步:1.定义一个类,直接继承自object ...

  7. 2019-08-02 纪中NOIP模拟B组

    T1 [JZOJ1420] 佳肴 题目描述 佳肴就是非常美味的菜的意思,佳肴最关键的是选择好原料. 现在有N种原料,每种原料都有酸度S和苦度B两个属性,当选择多种原料时,总酸度为每种原料的酸度之积,总 ...

  8. Java中boolean类型到底占用多少字节(转载)

    来源:https://www.cnblogs.com/brucecloud/p/5509921.html 虽然 Java 虚拟机定义了 boolean 这种数据类型,但是只对它提供了非常有限的支持.在 ...

  9. 网络https工作原理

    网络https工作原理 待办 https://www.runoob.com/w3cnote/https-ssl-intro.html

  10. Attribute "resultType" must be declared for element type "update" or "insert"

    仔细查看错误如图所示: 解决错误就是把resultType去掉,因为在insert和update语句中是没有返回值的.小坑小坑 转自:https://blog.csdn.net/u013144287/ ...