返回顶部
首页 > 资讯 > 后端开发 > Python >Django之content_type
  • 281
分享到

Django之content_type

Djangocontent_type 2023-01-30 22:01:29 281人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

什么是content type:Django内置的一个组件,这个组件帮忙做连表的操作。(混搭连表) 适用场景:适用于一张表与多张表同时做关联的时候。直接导入就可以使用了。 关联数据库说有的表;让我们可以快速插入数据,并且用反向查找能快速查

什么是content type:Django内置的一个组件,这个组件帮忙做连表的操作。(混搭连表)

适用场景:适用于一张表与多张表同时做关联的时候。直接导入就可以使用了。

关联数据库说有的表;让我们可以快速插入数据,并且用反向查找能快速查找到数据。

models.py文件建立表

from djanGo.db import models
 
# Create your models here.
from django.contrib.contenttypes.fields import GenericForeignKey,GenericRelation
from django.contrib.contenttypes.models import ContentType
 
class Course(models.Model):
    '''
    普通课程
    '''
    title=models.CharField(max_length=32)
    # 仅用于反向查找
    price_policy_list=GenericRelation('PricePolicy')
 
class DegreeCourse(models.Model):
    '''
    学位课程
    '''
    title=models.CharField(max_length=32)
    # 仅用于反向查找
    price_policy_list=GenericRelation('PricePolicy')
 
class PricePolicy(models.Model):
    '''
    价钱策略
    '''
    price = models.IntegerField()
    period = models.IntegerField()
 
    content_type=models.ForeignKey(ContentType,verbose_name='关联的表名称')
    object_id=models.IntegerField(verbose_name='关联的表中的数据行的ID')
 
    content_object=GenericForeignKey('content_type','object_id')
 
# 1. 为学位课“python全栈”添加一个价格策略:一个月 9.9
"""
obj = DegreeCourse.objects.filter(title='Python全栈').first()
# obj.id
cobj = ContentType.objects.filter(model='course').first()
# cobj.id
PricePolicy.objects.create(price='9.9',period='30',content_type_id=cobj.id,object_id=obj.id)
"""

views.py文件,进行数据插入和查看

from django.shortcuts import render,HttpResponse
 
# Create your views here.
from app01 import models
 
def test(request):
    # 1 为学位课python添加一个价格策略:一个月9.9
    # obj1=models.DegreeCourse.objects.filter(title='python').first()
    # models.PricePolicy.objects.create(price=9.9,period=30,content_object=obj1)
    #
    # obj1 = models.DegreeCourse.objects.filter(title='python').first()
    # models.PricePolicy.objects.create(price=19.9, period=60, content_object=obj2)
    #
    # obj1 = models.DegreeCourse.objects.filter(title='python').first()
    # models.PricePolicy.objects.create(price=29.9, period=90, content_object=obj3)
 
    # # 2 为学位课rest framework添加一个价格策略:一个月9.9
    # obj1=models.Course.objects.filter(title='rest framework').first()
    # models.PricePolicy.objects.create(price=9.9,period=30,content_object=obj1)
    #
    # obj2 = models.Course.objects.filter(title='rest framework').first()
    # models.PricePolicy.objects.create(price=19.9, period=60, content_object=obj2)
    #
    # obj3 = models.Course.objects.filter(title='rest framework').first()
    # models.PricePolicy.objects.create(price=29.9, period=90, content_object=obj3)
 
    # 3 根据课程的ID获取课程,并获取该课程的所有价格策略
    course=models.Course.objects.filter(id=1).first()
    price_policys=course.price_policy_list.all()
    print(price_policys)
    return HttpResponse('ok')

 

--结束END--

本文标题: Django之content_type

本文链接: https://lsjlt.com/news/180325.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Django之content_type
    什么是content type:django内置的一个组件,这个组件帮忙做连表的操作。(混搭连表) 适用场景:适用于一张表与多张表同时做关联的时候。直接导入就可以使用了。 关联数据库说有的表;让我们可以快速插入数据,并且用反向查找能快速查...
    99+
    2023-01-30
    Django content_type
  • Django之 HelloWorld
    C:\Users\andy>django-admin startproject sundyblog   ## 创建项目     C:\Users\andy>cd sundyblog2、C:...
    99+
    2023-06-05
  • Django之ModelForm
      在前面有篇博客,我写了一个叫forms组件的东西,可以帮助我们完成校验数据、渲染标签功能和在前端页面局部刷新功能,功能封装的已经很好了,当时已经很开心了。但万万没想到,还有比它功能更强大的东西。forms组件只能渲染出type=tex...
    99+
    2023-01-30
    Django ModelForm
  • Django之ORM
    ORM即Object Relational Mapping(对象关系映射)对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编...
    99+
    2023-01-30
    Django ORM
  • Django之Template
    Template模板的使用帮助我们将数据对应的插入到html文档中显示给用户。 一.Template和Context对象 t = Template('My name is {{ name }}.') c = Context({'n...
    99+
    2023-01-30
    Django Template
  • Django之FBV&CBV
    CBV与FBV是django视图中处理请求的两种方式 FBV也就是function base views,字面意思函数基础视图,使用函数的方式处理请求url分发中添加的参数为视图处理函数名, path('login/',views.l...
    99+
    2023-01-30
    Django FBV CBV
  • Django之forms组件
      一、校验数据功能   我们在写注册页面时,之前只是提交了数据,然后就保存了数据,后端根本就没有对数据进行校验,比如价格写的不是纯数字也让保存,这肯定是不行的,在前端是可以校验的,但我们不能只依靠前端验证,万一前端不校验,那整个过程就没...
    99+
    2023-01-30
    组件 Django forms
  • Django之Form组件
    一 Form介绍      我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。   与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度...
    99+
    2023-01-30
    组件 Django Form
  • Django之视图层
      一、视图函数   一个视图函数,简称视图,是一个简单的python函数,接收web请求并返回web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误等。在函数中必须写一个request的参数,然后必须要有返回值,中间的...
    99+
    2023-01-30
    视图 Django
  • Django之模板层
      在一个项目里面有一个专门放模板的文件夹Templates,有一个专门放视图的文件views,而且我们大多给浏览器响应的都应该是一个完整的页面,也就是读取的是一个HTML文件,然后再返回给浏览器。但我们在写HTML文件时,里面关于要从数...
    99+
    2023-01-30
    模板 Django
  • Django之auth组件
    一、Auth模块是什么   django内置的用户认证系统 ,可以快速 的实现,登录,注销,修改密码... 二、Auth用法:   1、先创建超级用户 :      python3 manage.py createsuperuser; ...
    99+
    2023-01-30
    组件 Django auth
  • Django之中间件
    中间件介绍   中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。   但是由于其影响的是全局,所以需要谨慎使...
    99+
    2023-01-30
    中间件 Django
  • Django之Cookie和Sessio
    Cookie cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况. 一句有...
    99+
    2023-01-30
    Django Cookie Sessio
  • Django之路由层
      url配置就像Django所支撑网站的目录。它的本质是url与要被该url调用的视图函数之间的映射表;通过这个映射表可以告知Django,对于客户端发来的某个url该执行那些代码。   一、简单的路由配置 from django.u...
    99+
    2023-01-30
    路由 Django
  • 浅谈Python之Django
    目录工具版本创建工程djangostart创建项目message创建一些辅助目录连接数据库(保证自己的数据库已启动)生成数据表总结工具版本 python版本:3.8 djang...
    99+
    2024-04-02
  • Django学习之十: staticfi
    目录 Django学习之十: staticfile 静态文件 理解阐述 静态文件 Django对静态文件的处理 其它方...
    99+
    2023-01-30
    Django staticfi
  • Django之模板系统
    一 语法     模板渲染的官方文档      关于模板渲染你只需要记两种特殊符号(语法):   {{  }}和 {% %}   变量相关的用{{}},逻辑相关的用{%%}。     二 变量      在Django的模板语...
    99+
    2023-01-30
    模板 系统 Django
  • Django之路由系统
    URL配置(URL.conf)就像Django所支撑网站的目录,它的本质是URL与要为该URL调用的视图函数之间的映射表. 我们就是以这种方式告诉Django,遇到哪个URL的时候,要对应执行哪个函数. URLconf配置 基本格式: ...
    99+
    2023-01-30
    路由 系统 Django
  • Django之频率组件
    一、频率简介 为了控制用户对某个url的请求 的频率,比如 ,一分钟以内,只能访问三次 二、自定义频率类,自定义频率规则 自定义的逻辑 (1)取出访问者的ip (2)判断当前ip不在访问字典里,添加进去,并且直接返回True,表示第一...
    99+
    2023-01-30
    组件 频率 Django
  • Django基础之(十)DRF
    简介 官方文档 Requirements REST framework requires the following: Python (2.7, 3.4, 3.5, 3.6, 3.7) Django (1.11, 2.0, 2.1) ...
    99+
    2023-01-31
    基础 Django DRF
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作