Django框架之ORM的相关操作之一对一关系(四)
ORM中一对一在当一张表的某一些字段查询的比较频繁,另外一些字段查询的不是特别频繁,那么就把不常用的字段单独拿出来做成一张表,然后通过一对一进行关联起来。举个例子:在我们登录某个账户的时候,一般会显示用户名,头像,而没有显示年龄,兴趣爱好,只有当点击用户详细信息的时候才显示这些年龄,兴趣爱好,所以一般将用户名,头像等作为用户表,而年龄,兴趣爱好就作为用户详细表。
一对一的优势:既保证数据都完整的保存下来,又能保证大部分的检索更快
ORM中一对一的用法:OneToOneField(to="表名")
模型类:
class Student(models.Model):
"""
学生表
"""
id=models.AutoField(primary_key=True)
name=models.CharField(max_length=10)
pwd=models.CharField(max_length=30)
detail_id=models.OneToOneField(to="StudentDetail") # 通过OneToOneField字段将StudentDetail表联系到一起 class StudentDetail(models.Model):
"""
学生表详细信息
"""
id=models.AutoField(primary_key=True)
sex=models.CharField(max_length=2)
hobby=models.CharField(max_length=50)
一对一查询
def one_to_one(requestt):
"""
一对一查询步骤:
1.先获取某个用户object
2.然后通过object.一对一外键就获得了详细表的模型信息
3.可以通过拿到模型表信息再获取具体的数据
:param requestt:
:return:
"""
get_user=models.Student.objects.get(id=7)
get_userdetail=get_user.detail_id
print(type(get_userdetail))
print(get_userdetail) return HttpResponse("ok")
Django框架之ORM的相关操作之一对一关系(四)的更多相关文章
- Django框架之ORM的相关操作(一)
一.一般操作 from django.db import models import datetime # Create your models here. class Author(models.M ...
- Django框架之ORM的相关操作之分页(六)
分页是每个项目必不可少要写的一个功能,该篇文章就将记录一下使用ORM写分页的过程. 假设我们的数据库里面需要显示一些数据,而这个表中的数据大约有几千条数据,那么我们不可能将所有的数据都显示出来,那么就 ...
- Django框架之ORM的相关操作之多对多三种方式(五)
在之前的博客中已经讲述了使用ORM的多对多关系表,现在进行总结一下: 1.ORM自动帮助我们创建第三张表 2.手动创建第三张表,第三张表使用ForeignKey指向其他的两张表关联起来 3.手动创建第 ...
- Django框架之ORM的相关操作(二)
模型类: class Commongity(models.Model): id=models.AutoField(primary_key=True) name=models.CharField(max ...
- Django框架06 /orm多表操作
Django框架06 /orm多表操作 目录 Django框架06 /orm多表操作 1. admin相关操作 2. 创建模型 3. 增加 4. 删除 5. 修改 6. 基于对象的跨表查询 7. 基于 ...
- Django框架05 /orm单表操作
Django框架05 /orm单表操作 目录 Django框架05 /orm单表操作 1. orm使用流程 2. orm字段 3. orm参数 4. orm单表简单增/删/改 5. orm单表查询 5 ...
- Django框架之ORM对表结构操作
ORM的优点:(1)简单,不用自己写SQL语句 (2)开发效率高 ORM的缺点:对于不同的人写的代码,执行效率有差别 ORM的对应关系: 类 ----------> 数据表 对象------ ...
- django框架基础-ORM跨表操作-长期维护
############### 一对一跨表查询 ################ import os if __name__ == '__main__': os.environ.setde ...
- django框架基础-ORM单表操作-长期维护
############### 单表操作-添加数据 ################ import os if __name__ == '__main__': os.environ.set ...
随机推荐
- mysql慢日志分析pt-query-digest
一.pt-query-digest 安装pt-query-digest yum install perl-DBI yum install perl-DBD-MySQL yum install perl ...
- [CF276B] Little Girl and Game
[CF276B] Description 给定字符串 \(S\) ,两人轮流,每次从字符串中任意取出一个字符并从原串中删去.如果某人某次操作前,串种剩余的字符集合经过排列可以得到回文串,那么这个人就胜 ...
- 爬虫实战 豆瓣音乐top250 xpath
刷知乎时刷到一篇爬取豆瓣音乐top250的,然后看了看,感觉自己的爬虫又更上一层楼了哈啊哈哈,尤其是发现xpath这么好用的东西. 不过也有一个感慨,就是有很多种方式都可以获得想要的数据,对于入门的新 ...
- java List 排序,升序,降序
import java.util.*; public class EntrySets { public static void main(String[] args) { Map<Object, ...
- 在Unity3d中使用Google.ProtocolBuffers
通过Nuget下载Google.ProtocolBuffers,在目录中找到net35下的文件,放入unity3d中作为插件 PersonMessage.Builder personBuilder = ...
- spring(三):BeanDefiniton
- Mysql中的触发器【转】
转载:https://www.cnblogs.com/chenpi/p/5130993.html 阅读目录 什么是触发器 特点及作用 例子:创建触发器,记录表的增.删.改操作记录 弊端 什么是触发器 ...
- Go操作influxDB
influxDB 安装 下载 https://portal.influxdata.com/downloads/ 这里需要注意因为这个网站引用了google的api所以国内点页面的按钮是没反应的,怎 ...
- selenium定位方法-iframe元素定位方法
在自动化测试中,如果无法定位到一个元素,那么最大的可能是定位的元素是在iframe框架中,iframe对象代表一个HTML的内联框架,在HTML中,iframe每出现一次,一个iframe对象就会被创 ...
- 每天进步一点点------Xilinx DCM
时钟---锁相环 1. Xilinx DCM 数字时钟管理模块(Digital Clock Manager,DCM)是基于Xilinx的其他系列器件所采用的数字延迟锁相环(DLL,Dela ...