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 表的用法的更多相关文章

  1. select * from 多张表的用法

    select * from 多张表的用法   其实就是 inner join   select * from Class c,Student s where c.ClassID=s.ClassID   ...

  2. mysql 事务类型表的用法

    mysql关联表(references)的条件:1.两个表必须是 InnoDB表类型2.使用在外键关系的域必须为索引型(Index)3.使用外键关系的域必须与数据类型相似 以下是父表和子表的例子:创建 ...

  3. SAP程序代码中RANGE表的用法禁忌

    最近经常有出现以上的SQL代码导致程序DUMP,SAP错误日志如下:       经过检查RANGE表GR_MATNR,当用于WHERE条件是,只限较小的数据量的情况(约100条左右): 若为大数据量 ...

  4. mrg_myIsam分表引擎用法

    CREATE TABLE `test`.`article_0` ( `id` BIGINT( 20 ) NOT NULL , `subject` VARCHAR( 200 ) NOT NULL , ` ...

  5. Hibernate 中Hql 查询中间表的用法

    案例简述: 项目中存在User 用户表 和 Role 角色表 它们之间是多对多的关系 在User类定义中 使用hibernate注解 //角色列表 @ManyToMany(targetEntity = ...

  6. mssql sqlserver update delete表别名用法简介

    转自:http://www.maomao365.com/?p=6973  摘要: 在sql脚本编写中,如果需要在update delete 中使用表别名的方法,必须按照一定的规则编写,否则将会出现相应 ...

  7. qt 样式表基本用法

    Qt样式表 QT样式表参考CSS层叠样式表设计,不同之处在于QT样式表应用于Widget世界. 可以使用QApplication::setStyleSheet()函数设置到整个应用程序上,也可以使用Q ...

  8. mysql alter修改数据库表结构用法

    1.alter操作表字段 (1)增加字段 alter table 表名 add 字段名 字段类型: alter table student add name varchar(10): (2)修改字段 ...

  9. yii2的form表单用法

    使用表单 本章节将介绍如何创建一个从用户那搜集数据的表单页.该页将显示一个包含 name 输入框和 email 输入框的表单.当搜集完这两部分信息后,页面将会显示用户输入的信息. 为了实现这个目标,除 ...

随机推荐

  1. 配置中心Server端

    为什么需要统一配置中心 1.不方便维护.一个功能被多个人开发,如果其中一个人修改了配置文件,另外一个人测试之前的功能,准备使用之前的配置. 2.配置内容安全与权限.线上的配置是不会对开发公开,特别是数 ...

  2. ubuntu下pycharm调用Hanlp实践分享

    前几天看了大快的举办的大数据论坛峰会的现场直播,惊喜的是hanlp2.0版本发布.Hanlp2.0版本将会支持任意多的语种,感觉还是挺好的!不过更多关于hanlp2.0的信息,可能还需要过一段时间才能 ...

  3. RedHat7局域网下安装离线Ambari

    1 Ambari介绍.安装与应用案例介绍 1.1 Ambari Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目 ...

  4. Linux重定向及nohup不输出的方法

    转载自:http://blog.csdn.net/qinglu000/article/details/18963031   先说一下linux重定向: 0.1和2分别表示标准输入.标准输出和标准错误信 ...

  5. A* search算法

    今天,还是国庆和中秋双节的时间节点,一个天气不错的日子,孩子已经早早的睡觉了,玩了一整天,也不睡觉,累的实在扛不住了,勉强洗澡结束,倒床即睡着的节奏... 不多说题外话,进入正题. 什么是A*搜索算法 ...

  6. Variant <-->Record Variant <-->Stream

    //     TARec   --->   Variantfunction RecordToVariant(value:TParamRecord):OleVariant;var P:Pointe ...

  7. Problem 1 :nslookup,dig,host及网络相关命令

    网络基础命令 [root@localhost sysconfig]# netstat -rn Kernel IP routing table Destination Gateway Genmask F ...

  8. Python单元测试框架之pytest 4 -- 断言

    From: https://www.cnblogs.com/fnng/p/4774676.html Python单元测试框架之pytest -- 断言 2015-08-31 23:57 by 虫师, ...

  9. TCP:WireShark分析,序列号Seq和确认号Ack

    转载自 http://blog.csdn.net/a19881029/article/details/38091243 序列号为当前端成功发送的数据位数,确认号为当前端成功接收的数据位数,SYN标志位 ...

  10. vuex状态管理2

    在vuex的官网https://vuex.vuejs.org中,提到的核心概念一共有5个,分别是State.Getter.Mutation.Action和Module,在上一篇随笔中,我们主要用到其中 ...