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 输入框的表单.当搜集完这两部分信息后,页面将会显示用户输入的信息. 为了实现这个目标,除 ...
随机推荐
- C166 8位字节位运算赋值-代码优化
8位字节位运算赋值优化特记录下: unsigned short func1(){ unsigned short a; return a;} unsigned char func2(){ unsigne ...
- NET设计模式 第二部分 行为型模式(15):模版方法模式(Template Method)
摘要:Template Method模式是比较简单的设计模式之一,但它却是代码复用的一项基本的技术,在类库中尤其重要. 主要内容 1.概述 2.Template Method解说 3..NET中的Te ...
- 页面框架加载完自动执行函数$(function(){});
页面中有一些大的资源文件,如图片,声音等,如果一个事件绑定写在这些加载资源代码的下方,那么要等资源加载完才会绑定,这样体验不够好. 于是想不等资源加载完,只要框架加载完成就绑定事件,就可以把代码放在以 ...
- Styles in Windows Phone
1. Use resources in internal style file: <Application.Resources> <ResourceDictionary Source ...
- URL中传递参数给视图函数
1. 采用在url中使用变量的方式: 在path的第一个参数中,使用<参数名>的方式可以传递参数.然后在视图函数中也要写一个参数,视图函数中的参数必须和url中的参数名称保持一致,不然就找 ...
- Ntfs 下的链接符号创建
熟悉过 Unix/Linux 都应该知道,Unix/Linux 用 ln 建立硬链接,ln -s 建立软链接(符号链接). 硬链接和符号链接的区别 Ntfs下的也有链接符: 内置命令:mklink ...
- table thead 置顶
table tbody { display:block; max-height:300px; overflow-y:scroll;}table thead, tbody tr { display:ta ...
- Redis持久化实践及灾难恢复模拟 [转]
参考资料:Redis Persistence http://redis.io/topics/persistenceGoogle Groups https://groups.google.com/for ...
- Java HashMap的死循环 以及 LRUCache的正确实现
今天RP爆发,16核服务器load飙到30多,cpu使用情况全部99%以上. 从jstack中分析发现全部线程都堵在map.transfer处,如下: "pool-10-thread-23& ...
- 享元(FlyWeight)模式
享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能.这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式.享元模式尝试 ...