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

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

 

转载于:https://www.cnblogs.com/jingjing12/p/8819109.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值