最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django組件content-type使用方法詳解

 更新時(shí)間:2019年07月19日 10:31:27   作者:Crazymagic  
這篇文章主要介紹了Django組件content-type使用方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

前言

一個(gè)表和多個(gè)表進(jìn)行關(guān)聯(lián),但具體隨著業(yè)務(wù)的加深,表不斷的增加,關(guān)聯(lián)的數(shù)量不斷的增加,怎么通過(guò)一開(kāi)始通過(guò)表的設(shè)計(jì)后,不在后期在修改表,徹底的解決這個(gè)問(wèn)題呢呢

django中的一個(gè)組件content-type可以幫助我們解決這樣的一個(gè)問(wèn)題

在這里我先設(shè)計(jì)了3張表 學(xué)位表 普通課程 和價(jià)格策略表 大致的設(shè)計(jì)如下

在上圖中我們可以看到價(jià)格策略表和其他的兩個(gè)表進(jìn)行了關(guān)聯(lián),可以根據(jù)表明

models.py

from django.db import models
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)
  # 僅用于反向查找 不在數(shù)據(jù)庫(kù)中添加字段
  price_policy_list = GenericRelation("PricePolicy")

class DegreeCourse(models.Model):
  """
  學(xué)位課程
  """
  title = models.CharField(max_length=32)

  # 僅用于反向查找
  price_policy_list = GenericRelation("PricePolicy")


class PricePolicy(models.Model):
  """
  價(jià)格策略
  """
  price = models.IntegerField()
  period = models.IntegerField()

  # 關(guān)聯(lián)表
  content_type = models.ForeignKey(ContentType, verbose_name='關(guān)聯(lián)的表名稱') # 7,8 表名稱
  object_id = models.IntegerField(verbose_name='關(guān)聯(lián)的表中的數(shù)據(jù)行的ID')  #
  # 幫助你快速實(shí)現(xiàn)content_type操作 ,快速插入數(shù)據(jù) 不生成數(shù)據(jù)庫(kù)中的字段 
  content_object = GenericForeignKey('content_type', 'object_id')

進(jìn)行插入數(shù)據(jù)的類視圖

from django.shortcuts import render,HttpResponse
from app01 import models
def test(request):

  # 1. 為學(xué)位課“Python全棧”添加一個(gè)價(jià)格策略:一個(gè)月 9.9
  # obj1 = models.DegreeCourse.objects.filter(title='Python全棧').first()
  # models.PricePolicy.objects.create(price=9.9, period=30, content_object=obj1)
  #
  # obj2 = models.DegreeCourse.objects.filter(title='Python全棧').first()
  # models.PricePolicy.objects.create(price=19.9, period=60, content_object=obj2)
  #
  # obj3 = models.DegreeCourse.objects.filter(title='Python全棧').first()
  # models.PricePolicy.objects.create(price=29.9, period=90, content_object=obj3)

  # 2. 為學(xué)位課“rest”添加一個(gè)價(jià)格策略:一個(gè)月 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. 根據(jù)課程ID獲取課程, 并獲取該課程的所有價(jià)格策略
  # course = models.Course.objects.filter(id=1).first()
  #
  # price_policys = course.price_policy_list.all()
  #
  # print(price_policys)


  return HttpResponse('...')

為其添加路由

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url(r'^test/', views.test),
]

我們自己進(jìn)行插入數(shù)據(jù)可能會(huì)這樣寫(xiě)

# 1. 為學(xué)位課“Python全?!碧砑右粋€(gè)價(jià)格策略:一個(gè)月 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)
"""
# obj = DegreeCourse.objects.filter(title='Python全棧').first()
# PricePolicy.objects.create(price='9.9',period='30',content_object=obj)

輸入以下的地址進(jìn)行測(cè)試

http://127.0.0.1:8000/test

數(shù)據(jù)庫(kù)中的結(jié)果如下

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中altair可視化庫(kù)實(shí)例用法

    python中altair可視化庫(kù)實(shí)例用法

    在本篇文章里小編給大家整理的是一篇關(guān)于python中altair可視化庫(kù)實(shí)例用法,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • Python繪制的愛(ài)心樹(shù)與表白代碼(完整代碼)

    Python繪制的愛(ài)心樹(shù)與表白代碼(完整代碼)

    這篇文章主要介紹了Python繪制的愛(ài)心樹(shù)與表白代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 如何使用Python對(duì)日期和時(shí)間進(jìn)行排序

    如何使用Python對(duì)日期和時(shí)間進(jìn)行排序

    本文將教我們?nèi)绾问褂肞ython對(duì)日期和時(shí)間進(jìn)行排序,我們還將學(xué)習(xí)datetime模塊和sorted方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-06-06
  • Python實(shí)現(xiàn)自動(dòng)玩連連看的腳本分享

    Python實(shí)現(xiàn)自動(dòng)玩連連看的腳本分享

    最近女朋友在玩連連看,玩了一個(gè)星期了還沒(méi)通關(guān),真的是菜。實(shí)在是看不過(guò)去了,直接用python寫(xiě)了個(gè)腳本代碼可以自動(dòng)玩連連看,感興趣的可以了解一下
    2022-04-04
  • 對(duì)python中的float除法和整除法的實(shí)例詳解

    對(duì)python中的float除法和整除法的實(shí)例詳解

    今天小編就為大家分享一篇對(duì)python中的float除法和整除法的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • Python之requests高級(jí)用法詳解

    Python之requests高級(jí)用法詳解

    這篇文章主要介紹了Python之requests高級(jí)用法詳解,http協(xié)議是無(wú)狀態(tài)的,?服務(wù)器無(wú)法區(qū)分多個(gè)請(qǐng)求是否來(lái)自同一個(gè)人,因此需要用cookie來(lái)進(jìn)行標(biāo)識(shí),一般如果需要登錄才能訪問(wèn)的網(wǎng)站就需要發(fā)送cookie信息,需要的朋友可以參考下
    2023-10-10
  • Ubuntu下安裝PyV8

    Ubuntu下安裝PyV8

    本文給大家簡(jiǎn)單介紹了下在ubuntu下安裝pyv8的方法和注意事項(xiàng),非常的實(shí)用,有需要的小伙伴可以參考下
    2016-03-03
  • 詳解Django配置優(yōu)化方法

    詳解Django配置優(yōu)化方法

    這篇文章主要介紹了詳解Django配置優(yōu)化方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • python使用scapy模塊實(shí)現(xiàn)ping掃描的過(guò)程詳解

    python使用scapy模塊實(shí)現(xiàn)ping掃描的過(guò)程詳解

    這篇文章主要介紹了python使用scapy模塊實(shí)現(xiàn)ping掃描的過(guò)程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Python+Pandas實(shí)現(xiàn)數(shù)據(jù)透視表

    Python+Pandas實(shí)現(xiàn)數(shù)據(jù)透視表

    對(duì)于數(shù)據(jù)透視表,相信對(duì)于Excel比較熟悉的小伙伴都知道如何使用它。本文將利用Python Pandas實(shí)現(xiàn)數(shù)據(jù)透視表功能,感興趣的可以學(xué)習(xí)一下
    2022-06-06

最新評(píng)論

界首市| 潮州市| 徐州市| 株洲市| 霍邱县| 浦东新区| 咸阳市| 浮山县| 固镇县| 墨江| 自贡市| 鸡西市| 霍山县| 宝清县| 祥云县| 鹤山市| 郯城县| 略阳县| 宣威市| 大渡口区| 巴林右旗| 峨眉山市| 延寿县| 桓台县| 无为县| 中阳县| 齐齐哈尔市| 德保县| 元谋县| 佛学| 岱山县| 合水县| 汶上县| 烟台市| 资源县| 车致| 仁寿县| 英超| 丽水市| 宜城市| 嘉兴市|