contentupe 表的用法
model 代码
from django.db import modelsfrom django.contrib.contenttypes.models import ContentType #django自带的ContentType表#GenericRelation 不生成字段只用于反向查询 GenericForeignKey 不会生成字段 只用于关联到对象的from django.contrib.contenttypes.fields import GenericForeignKey,GenericRelation
class Food(models.Model): name=models.CharField(max_length=32) coupons=GenericRelation(to='Coupon') # 不生成字段只用于反向查询
class Fruit(models.Model): name=models.CharField(max_length=32) coupons=GenericRelation(to='Coupon') # 不生成字段只用于反向查询
class Coupon(models.Model): title=models.CharField(max_length=32) #用django自带的ContentType表 content_type=models.ForeignKey(to=ContentType) object_id=models.IntegerField() # 不会生成字段 只用于关联到对象的 content_object=GenericForeignKey('content_type','object_id')
视图查询 代码
from Dome.models import Food,Fruit,Couponfrom django.contrib.contenttypes.models import ContentType
class Test(APIView): def get(self,request):
''' # 找到表id以及表对象 content_type_obj=ContentType.objects.filter(app_label='Dome',model='food').first()#表名要小写 print(content_type_obj) #返回表名 model_class=content_type_obj.model_class() #model_class()方法 print(model_class) #返回是一个对象 '''
""" # 给酱香饼创建优惠券 food_obj=Food.objects.filter(id=1).first() Coupon.objects.create(title='打折',content_object=food_obj) #content_object= 用这个隐层的字段 """
""" # 给黑美人加优惠券 fruit_obj=Fruit.objects.get(id=2) Coupon.objects.create(title='不要了',content_type_id=9,object_id=2) """
""" # 查询优惠券绑定对象 compon_obj=Coupon.objects.filter(id=1).first() print(compon_obj.content_object.name) """
""" # 查某个对象的优惠券 food_obj=Food.objects.filter(id=1).first() print(food_obj.coupons.all()) """ return HttpResponse("ok")
contentupe 表的用法的更多相关文章
- select * from 多张表的用法
select * from 多张表的用法 其实就是 inner join select * from Class c,Student s where c.ClassID=s.ClassID ...
- mysql 事务类型表的用法
mysql关联表(references)的条件:1.两个表必须是 InnoDB表类型2.使用在外键关系的域必须为索引型(Index)3.使用外键关系的域必须与数据类型相似 以下是父表和子表的例子:创建 ...
- SAP程序代码中RANGE表的用法禁忌
最近经常有出现以上的SQL代码导致程序DUMP,SAP错误日志如下: 经过检查RANGE表GR_MATNR,当用于WHERE条件是,只限较小的数据量的情况(约100条左右): 若为大数据量 ...
- mrg_myIsam分表引擎用法
CREATE TABLE `test`.`article_0` ( `id` BIGINT( 20 ) NOT NULL , `subject` VARCHAR( 200 ) NOT NULL , ` ...
- Hibernate 中Hql 查询中间表的用法
案例简述: 项目中存在User 用户表 和 Role 角色表 它们之间是多对多的关系 在User类定义中 使用hibernate注解 //角色列表 @ManyToMany(targetEntity = ...
- mssql sqlserver update delete表别名用法简介
转自:http://www.maomao365.com/?p=6973 摘要: 在sql脚本编写中,如果需要在update delete 中使用表别名的方法,必须按照一定的规则编写,否则将会出现相应 ...
- qt 样式表基本用法
Qt样式表 QT样式表参考CSS层叠样式表设计,不同之处在于QT样式表应用于Widget世界. 可以使用QApplication::setStyleSheet()函数设置到整个应用程序上,也可以使用Q ...
- mysql alter修改数据库表结构用法
1.alter操作表字段 (1)增加字段 alter table 表名 add 字段名 字段类型: alter table student add name varchar(10): (2)修改字段 ...
- yii2的form表单用法
使用表单 本章节将介绍如何创建一个从用户那搜集数据的表单页.该页将显示一个包含 name 输入框和 email 输入框的表单.当搜集完这两部分信息后,页面将会显示用户输入的信息. 为了实现这个目标,除 ...
随机推荐
- NET设计模式 第二部分 结构性模式(13):代理模式(Proxy Pattern)
代理模式(Proxy Pattern) ——.NET设计模式系列之十四 Terrylee,2006年5月 摘要:在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对 ...
- NET设计模式 第二部分 创建型模式(6):创建型模式专题总结(Creational Pattern)
创建型模式专题总结(Creational Pattern) ——.NET设计模式系列之七 Terrylee,2006年1月 概述 创建型模式,就是用来创建对象的模式,抽象了实例化的过程.它帮助一个系统 ...
- msp430学习笔记-DAC12
MSP430F169 的DAC12 模块有2 个DAC 通道,并且可以用DAC12GRP控制位将多个DAC12通道组合起来,实现同步更新,硬件还能确保同步更新独立于任何中断或者NMI事件. DAC12 ...
- pm2 常用命令
pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的.它非常适合IaaS结构,但不要把它用于 ...
- Java第02次实验提纲(Java基本语法与类库)
1. 熟悉Git 1.1 学会使用网页版的操作代码仓库(gitee) 申请账号,然后根据老师提供的链接或者二维码加入团队,然后修改昵称. fork老师提供的代码库项目,新建自己学号命名的文件并上传一些 ...
- C++11--编译器生成的函数
using namespace std; class Dog {}; /* C++ 03 * 1 默认构造函数(只有当用户没有声明任何构造函数) * 2 拷贝构造(只有当用户没有声明5,6),扩展到C ...
- [Java]JGit用法总结
clone public static void gitClone(String remoteUrl, File repoDir) { try { Git git = Git.cloneReposit ...
- 写在vue总结之前(二)
都说要快速学会一个技术(会使用),比如一个框架,在实际的工作中做相关的项目是最快的学习方式.而为什么在实际的工作项目中去学习是最快的方式?个人的体会是,在实际的工作项目中,很多功能的实现是你不得不做的 ...
- unittest框架 assertEqual 报错 让其出现中文的方法(这个问题出现时 我找了老半天) 还追加了 报错信息自定义的方法
1,发现如果assertEqual里面放的是变量,不会展示中文出来 2,放的是中文(注意前面加u)就可以展示中文出来 改进后的方法:(可以放入变量去对比还可以展示中文的方法)
- [转]截图软件分享 - Snipaste
http://chromecj.com/software/2018-10/1538.html https://zh.snipaste.com/download.html