Django之content_type
什么是content type:django内置的一个组件,这个组件帮忙做连表的操作。(混搭连表)
适用场景:适用于一张表与多张表同时做关联的时候。直接导入就可以使用了。
关联数据库说有的表;让我们可以快速插入数据,并且用反向查找能快速查找到数据。
models.py文件建立表
from django.db import models# Create your models here. from django.contrib.contenttypes.fields import GenericForeignKey,GenericRelation from django.contrib.contenttypes.models import ContentTypeclass Course(models.Model):'''普通课程'''title=models.CharField(max_length=32)# 仅用于反向查找price_policy_list=GenericRelation('PricePolicy')class DegreeCourse(models.Model):'''学位课程'''title=models.CharField(max_length=32)# 仅用于反向查找price_policy_list=GenericRelation('PricePolicy')class PricePolicy(models.Model):'''价钱策略'''price = models.IntegerField()period = models.IntegerField()content_type=models.ForeignKey(ContentType,verbose_name='关联的表名称')object_id=models.IntegerField(verbose_name='关联的表中的数据行的ID')content_object=GenericForeignKey('content_type','object_id')# 1. 为学位课“Python全栈”添加一个价格策略:一个月 9.9 """ obj = DegreeCourse.objects.filter(title='Python全栈').first() # obj.id cobj = ContentType.objects.filter(model='course').first() # cobj.id PricePolicy.objects.create(price='9.9',period='30',content_type_id=cobj.id,object_id=obj.id) """
views.py文件,进行数据插入和查看
from django.shortcuts import render,HttpResponse# Create your views here. from app01 import modelsdef test(request):# 1 为学位课python添加一个价格策略:一个月9.9# obj1=models.DegreeCourse.objects.filter(title='python').first()# models.PricePolicy.objects.create(price=9.9,period=30,content_object=obj1)# # obj1 = models.DegreeCourse.objects.filter(title='python').first()# models.PricePolicy.objects.create(price=19.9, period=60, content_object=obj2)# # obj1 = models.DegreeCourse.objects.filter(title='python').first()# models.PricePolicy.objects.create(price=29.9, period=90, content_object=obj3)# # 2 为学位课rest framework添加一个价格策略:一个月9.9# obj1=models.Course.objects.filter(title='rest framework').first()# models.PricePolicy.objects.create(price=9.9,period=30,content_object=obj1)# # obj2 = models.Course.objects.filter(title='rest framework').first()# models.PricePolicy.objects.create(price=19.9, period=60, content_object=obj2)# # obj3 = models.Course.objects.filter(title='rest framework').first()# models.PricePolicy.objects.create(price=29.9, period=90, content_object=obj3)# 3 根据课程的ID获取课程,并获取该课程的所有价格策略course=models.Course.objects.filter(id=1).first()price_policys=course.price_policy_list.all()print(price_policys)return HttpResponse('ok')
转载于:https://www.cnblogs.com/zycorn/p/10020490.html
Django之content_type相关推荐
- python response.json()报错_Django JsonResponse json格式报错 解决Django响应JsonResponse返回json格式数据报错问题...
想了解解决Django响应JsonResponse返回json格式数据报错问题的相关内容吗,彭世瑜在本文为您仔细讲解Django JsonResponse json格式报错的相关知识和一些Code实例 ...
- openstack页面自定义插件使用详解(django、ajax、post)(zTree为例)
2019独角兽企业重金招聘Python工程师标准>>> 感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. Be ...
- Django源码分析4:staticfiles静态文件处理中间件分析
django源码分析 本文环境python3.5.2,django1.10.x系列1.在上一篇文章中已经分析过handler的处理过程,其中load_middleware就是将配置的中间件进行初始化, ...
- Django博客系统注册(图形验证码接口设计和定义)
1. 准备captcha包(该包用于生成图形验证码) 1.将生成图片验证码的库复制到新建的libs包中. 2.安装Python处理图片的库 这儿可能会变红显示错误: 解决方案:在虚拟环境中安装Pill ...
- Django视图之HttpRequest对象和HttpResponse对象
五.HttpRequest对象 回想一下,利用HTTP协议向服务器传参有几种途径? 提取URL的特定部分,如/weather/beijing/2018,可以在服务器端的路由中用正则表达式截取: 查询字 ...
- Django REST framework API 指南(2):响应
Django REST framework API 指南(1):请求 Django REST framework API 指南(2):响应 Django REST framework API 指南(3 ...
- django使用auth模块进行身份认证
https://docs.djangoproject.com/zh-hans/2.0/topics/auth/default/#authentication-in-web-requests djang ...
- Django REST framework API 指南(11):序列化·关系
官方原文链接 本系列文章 github 地址 转载请注明出处 Serializer 关系 关系字段用于表示模型关系. 它们可以应用于 ForeignKey,ManyToManyField 和 OneT ...
- Django后台定制
2019独角兽企业重金招聘Python工程师标准>>> 自定制Admin 如果只是在admin中简单的展示及管理模型,那么在admin.py模块中使用admin.site.regis ...
最新文章
- 代码实战 | 用LeGO-LOAM实现地面提取
- mybatis 分页需要的jar包下载_064、MyBatis
- cout的输出格式初探3
- Hibernate反向生成映射文件点击Hibernate reserve Engineering的时候没反应的解决方法
- mmap 和 shm 区别
- 家里在一二线城市有很多套房是什么体验?答案太颠覆!
- Java面试知识点:多态、内部类
- Mysql在可视化工具navicat中如何解决输入小数变整数的问题,(改变小数位数)
- 放弃机器学习,Python 如何进行物体检测?
- 为什么程序员如此“嫌弃”主干开发模式?
- [转载] Python 学习 - Numpy
- ubuntu wireshark找不到网卡及开启IP转发
- 计算机组成原理-检错码、纠错码
- SpringMVC 访问html页面乱码
- brew - 切换为国内源
- (Tiled官方文档翻译)第四节:对象的编辑和使用
- 基于JAVA的网上花店销售系统的设计与实现(附:源码 论文 sql文件)
- 优秀的图文识别开源项目PandaOCR
- Word生成图表(柱状图、线形图等,并附带表格展示数值)
- 12.22 @烤仔建工 | 烤仔家具城建设中……
热门文章
- JVM调优:运行参数,内存模型,mat、jps、jstat、jmap、jstack、jvisualvm工具的使用
- linux实用的脚本:xcall(同步执行命令)与xsync(同步文件目录)
- Linkis1.0用户使用文档:JAVA和SCALA调用Linkis的接口示例代码
- 【收藏】firewalld开放端口
- loadrunner脚本设计:检查点(断言)及web_submit_data函数使用示例
- linux 产生0~2之间的随机数
- 【视频】vue组件之$emit父子组件间值的传递
- Linux service指令
- window下的host路径
- Qt 6的Qt 3D会是什么样?