zoukankan      html  css  js  c++  java
  • django中的Contenttype

    Contenttype的认识

    contenttype:

    在学前端时,用ajax请求发数据时也有contenttype,而且ajax中的contenttype是规定发送请求的编码方式,而在django中也出现了contenttype,此contenttype可非彼contenttype啊

    django中的contenttype:

    数据库迁移完之后,会有如下图所示有一张content_type表:

    打开这张content_type表:可以看到这张表其实是django为我们提供的一张存有app名以及app下对应的各表的名称

    这个表到底有什么作用就需要进一步的探究了。

    Contenttype的用途:

    django中contenttype的用途 

    当然先得有问题才能用工具来解决:对于销售课程来说由于课程的类别,课程的周期价格都是不一样的,那我们应该怎样设计表呢?

    通常的方法我们会考虑建一张课程表,建一张价格表,然后绑定多对多的关系,这样可以但是如果课程种类很多呢,全放到一张表中还是不妥当,那么我们想到针对没中类型的课都常见一张表,这样种类分的就比较明确了,但是价格表中的关系怎样绑定呢,可以绑定多个外键,这个方法可以解决关系绑定问题,但是呢如果后续要添加一类课,该怎么办呢,再给价格表添加一列?nonono!

    from django.db import models
    from django.contrib.contenttypes.models import ContentType
    from django.contrib.contenttypes.fields import GenericForeignKey
    #导入contenttype其实contenttype就是django内部的一个app
    # Create your models here.
    class DegreeCourse(models.Model):
        name=models.CharField(max_length=32)
    
    
    class Course(models.Model):
        name=models.CharField(max_length=32)
    
    
    class PricePolicy(models.Model):
        content_type=models.ForeignKey(ContentType)
        object_id=models.PositiveIntegerField()
        #不会再数据库中生成字段,只用于帮助数据操作
        content_object=GenericForeignKey('content_type','object_id')
    
        period=models.CharField(max_length=32)
        price=models.FloatField()

    未完.......................

  • 相关阅读:
    线程池中shutdown()和shutdownNow()方法的区别
    java.util.concurrent.TimeoutException: Idle timeout expired: 300000/300000 ms
    ConnectTimeout和ReadTimeout所代表的意义
    hive 查询注意问题
    java面试题之int和Integer的区别
    MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的区别
    MySQL数据库使用mysqldump导出数据详解
    C++宏定义详解
    OTL调用存储过程/函数及注意事项
    linux自定义开机启动服务和chkconfig使用方法
  • 原文地址:https://www.cnblogs.com/kxllong/p/8819109.html
Copyright © 2011-2022 走看看