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. php获取指定文件夹中文件名称

    /** * php获取指定文件夹中文件名称 * @author jackie <2018.10.10> */ public static function getFileName($fil ...

  2. java-线程(runoob.com)

    参考链接: https://www.cnblogs.com/wxd0108/p/5479442.html https://www.cnblogs.com/dolphin0520/p/3920373.h ...

  3. JMeter ----与WebDriver安装与测试

    JMeter ----与WebDriver安装与测试 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 环境与参考 jvm版本: 1.8.0_65 j ...

  4. jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)

    jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter) 一.环境准备: 1.JDK:http://www.oracle.com/technetwork/java/jav ...

  5. Redis 基础命令

    1. 进入redis目录,启动redis cd src ./redis-server 2.  进入redis目录,启动redis客户端 cd src ./redis-cli 3. info命令 4. ...

  6. 安装tensorflow,那叫一个坑啊

    最近,项目团队需要研究并应用AI的技术,在具体的产品实施环节中使用.之前的几个项目,是委托武汉大学给做的,基于keras框架,实现了一些图像识别的项目. 这不,上方希望自己能够掌握一些常用且成熟的AI ...

  7. wifi实现串口透传

    环境: 串口服务器Ip:172.16.1.11 串口客户机ip:172.16.1.12 一.网络连接示意图 二.串口服务器的配置 参考:ser2net的编译及测试 三.串口客户端的配置 实际上这是一个 ...

  8. ionic popup 做法及样式修改

    ionic popup的做法很简单,一共有三种:show.confirm和alert,官网上讲得很详细. 一.confirm: js:var confirmPopup = $ionicPopup.co ...

  9. Visual Studio 2019/2017 安装使用教程(快速上手版)

    目录 Visual Studio 2017 安装使用教程(详细) 在此鸣谢范华对本文工作的大力支持 一.下载 二.安装 2017版本新建项目过程 2019版本新建项目过程 然后你就可以简单编写一段代码 ...

  10. OpenStack单节点网络设置

    一.上传镜像文件 1.上传镜像 2.检索镜像 二.创建网络 1.创建内部网络 2.创建外部网络 3.创建内部网络子网 设置DHCP分配地址池,点击已创建 4.创建外部网络子网 注意:外部网络与仅主机( ...