django的contenttype表

https://blog.csdn.net/aaronthon/article/details/81714496python

這篇文章已經很是詳細了,供本身之後忘了...回看......spa

 

 

 總結:  .net

當一張表和多個表FK關聯,而且多個FK中只能選擇其中一個或其中n個時,能夠利用contenttype,固定用三個字段           對象

  

content_type = models.ForeignKey(ContentType,on_delete=models.CASCADE)  # 關聯course or degree_course
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id') # obj.content_object獲取關聯對象

  

price_policy = GenericRelation("PricePolicy")  # GenericForeignKey反向查詢,不會生成表字段  obj.price_policy.all()獲取全部關聯對象

  

實際用法blog

from .models import PricePolicy
p=PricePolicy.objects.get(pk=1)
p.content_object
<Course: 英語基礎(付費)>

from .models import Course
c=Course.objects.get(pk=1)
c.price_policy.all()
<QuerySet [<PricePolicy: 英語基礎(付費)(2周)100.0>, <PricePolicy: 英語基礎(付費)(1個月)200.0>, <PricePolicy: 英語基礎(付費)(2個月)300.0>]>
相關文章
相關標籤/搜索