zoukankan      html  css  js  c++  java
  • django contenttype

    下图即为django的contenttype表

    models.py

     1 from django.db import models
     2 from django.contrib.contenttypes.models import ContentType
     3 from django.contrib.contenttypes.fields import GenericForeignKey,GenericRelation
     4 
     5 
     6 class PythonBasic(models.Model):
     7     course_name = models.CharField(max_length=32)
     8     coupon = GenericRelation("Coupon")   #  反向查询 通过此字段,类似于 releted_name
     9 class Oop(models.Model):
    10     course_name = models.CharField(max_length=32)
    11     coupon = GenericRelation("Coupon")
    12 class Coupon(models.Model):
    13     coupon_name = models.CharField(max_length=32)
    14     content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) # 与django contenttype表建立外键
    15 
    16     object_id = models.PositiveIntegerField()  # 对应表中的对象id
    17 
    18     content_object = GenericForeignKey('content_type','object_id') # 不会生成列 

    如何查询:

    def get(self, request):
    
        pb = ContentType.objects.filter(app_label="auth",model='user').first() # 与contenttype表字段对应
        pb_model = pb.model_class() # 执行此方法拿到 <class 'django.db.models.base.ModelBase'>
        print(pb_model.objects.all())

    如何创建:

    object_id = PythonBasic.objects.get(pk=1)
    Coupon.objects.create(coupon_name="python优惠卷",content_object = object_id)
  • 相关阅读:
    Compiler OverView
    二叉查找树
    [C++] manage background threads with boost::thread
    模拟类式继承
    JavaScript Curry
    Get GetProcAddress Function Address
    ASP.MVC Session为null
    ASP.NET MVC项目Forms身份验证HttpContext.Current.User为空
    Java Bean Validation学习笔记
    java开发中sql注入正则表达式检测
  • 原文地址:https://www.cnblogs.com/lzmdbk/p/10105312.html
Copyright © 2011-2022 走看看