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()

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

  • 相关阅读:
    jmeter(46) redis
    jmeter(45) tcp/ip协议
    Codeforces Round #538 (Div. 2)D(区间DP,思维)
    Codeforces Global Round 1D(DP,思维)
    Educational Codeforces Round 57D(DP,思维)
    UPC11073(DP,思维)
    Yahoo Progamming Contest 2019D(DP,思维)
    Atcoder Beginner Contest 118D(DP,完全背包,贪心)
    Xuzhou Winter Camp 1C(模拟)
    Educational Codeforces Round 57 (Rated for Div. 2)D(动态规划)
  • 原文地址:https://www.cnblogs.com/kxllong/p/8819109.html
Copyright © 2011-2022 走看看