ContentType

  一般我们有多张表同时外键关联同一张表的时候,可以考虑使用ContentType

models.py

 from django.db import models
from django.contrib.contenttypes.models import ContentType # django自己生成的表,里面存储着每一个app和它下面的表关系
from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation class PythonBasic(models.Model):
course_name = models.CharField(max_length=32)
coupons = GenericRelation(to='Coupon') ##相当于foreignkey class Oop(models.Model):
course_name = models.CharField(max_length=32)
coupons = GenericRelation(to='Coupon') ##相当于foreignkey class Coupon(models.Model):
coupon_name = models.CharField(max_length=32)
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) ##
object_id = models.PositiveIntegerField() ## content_object = GenericForeignKey("content_type", "object_id") ## 在表中不会真的生成这个字段,但是对应关系是靠它实现的

views.py

 class ContentTypeView(View):

     def get(self, request):
# 获取表名
# pb = ContentType.objects.filter(app_label='app01', model='pythonbasic').first()
# print(pb.model_class()) # <class 'app01.models.PythonBasic'>
# print(pb.model_class().objects.all()) # <QuerySet [<PythonBasic: PythonBasic object (1)>, <PythonBasic: PythonBasic object (2)>, <PythonBasic: PythonBasic object (3)>]> # obj = PythonBasic.objects.get(id=3)
obj = Oop.objects.get(id=2)
# Coupon.objects.create(coupon_name="Python基础通关", content_object=obj)
print(obj.coupons.all()) return HttpResponse('ok')

最新文章

  1. 前端学PHP之变量范围
  2. 《精通C#》自定义类型转化-扩展方法-匿名类型-指针类型(11.3-11.6)
  3. Yii里文件上传的操作方法(图片修改,在详情上展示,批量上传待续...)
  4. Android 第三方应用接入微信平台(1)
  5. Oracle基础(七)数据表
  6. MFC 堆栈溢出 test dword ptr [eax],eax ; probe page.
  7. n!mod p的求法
  8. Sublime Text3常用插件以及安装方法(实用)
  9. Spring 使用AspectJ的三种方式
  10. Amicable numbers -- Javascript 实现
  11. 记录一次被bc利用跳转过程分析
  12. InvocationHandler和Proxy(Class)的动态代理机制详解
  13. vue-cli中的check-versions.js配置文件包括semver,chalk,shell插件的解释
  14. 虚拟机安装centos6.6全步骤
  15. python使用scikit-learn计算TF-IDF
  16. DataBind()方法实现数据绑定
  17. 深入理解@RequestBody注解
  18. jquery 遮罩层显示img
  19. hibernate查询排序
  20. 【mybatis】 mybatis在mysql 更新update 操作 更新时间字段按照年月日时分秒格式 更新为当前时间

热门文章

  1. Java获取执行进程的dump文件及获取Java stack
  2. 后会有期,江湖再见!(WondersGroup)
  3. Python基础系列讲解-自动控制windows桌面
  4. SpringCloud之Zuul网关简介、映射vs过滤配置使用
  5. Spark 系列(一)—— Spark简介
  6. 环境配置 python 3.6+Anaconda+cuda9.0+cudNN7.0+Tensorflow
  7. CCF 2016-04-1 折点计数
  8. 1.1 文档PUT内部原理
  9. Unity VS2017 调试外部DLL
  10. vue 自定义image组件