zoukankan      html  css  js  c++  java
  • python之路_django之contenttype介绍

    表结构如下:

    class DegreeCourse(models.Model):
        """学位课程"""
        name = models.CharField(max_length=128, unique=True)
                
        # 忽略,用于GenericForeignKey反向查询,不会生成表字段,切勿删除
        degreecourse_price_policy = GenericRelation("PricePolicy")
    
        def __str__(self):
            return self.name
    
            
    class Course(models.Model):
        """课程"""
        name = models.CharField(max_length=128, unique=True)
    
        # 用于GenericForeignKey反向查询,不会生成表字段,切勿删除
        price_policy = GenericRelation("PricePolicy")
        
    
    class PricePolicy(models.Model):
        """价格与有课程效期表"""
        content_type = models.ForeignKey(ContentType)      #ContentType为django提供的包含app名称和表名字段的表
        object_id = models.PositiveIntegerField()          #某表中一条信息的对应id
        content_object = GenericForeignKey('content_type', 'object_id')
        price = models.FloatField()
            

    表操作介绍:

    # 添加方式一
    obj1 = models.DegreeCourse.objects.get(id=1)
    models.PricePolicy.objects.create(content_object=obj1,price=10)
            
    # 添加方式二
    id = ContentType.objects.get(app_name='app01',modelname="degreecourse").id
    models.PricePolicy.objects.create(content_type_id=id,object_id=1, price=10)
            
    # 正向查找
    price_list = models.PricePolicy.objects.all()
    for item in price_list:
        item.content_object
    
    # 反向查找
    clist = models.DegreeCourse.objects.all()
    for item in clist:
        item.degreecourse_price_policy.all()
  • 相关阅读:
    js获取数组,对象的真实长度
    http和https区别
    react调用setstate后发生了什么
    for in for of foreach及map的区别
    事件委托(事件代理)
    CSS隐藏元素的几种方法
    react一些扩展
    [软件构造]异常的捕获与自定义
    [软件构造]可能是笔记总结吧
    计算机系统大作业
  • 原文地址:https://www.cnblogs.com/seven-007/p/8483184.html
Copyright © 2011-2022 走看看