关于复合关联关系中的genericrelation的困惑

关于复合关联关系中的genericrelation的困惑

什么时候使用genericrelation,本节视频product和comments中都使用了,而tag和classify中都是用的类名。而如下图,为啥product中使用,而store中却啥都没使用呢?

http://img1.sycdn.imooc.com//climg/5eca7703090a482906380445.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学,你好。对于通用关联,举个例子:产品模型Product和产品的评论模型Comments使用了通用关联,关联到ImageFile:

http://img1.sycdn.imooc.com//climg/5ecc722309e626a408580108.jpg

http://img1.sycdn.imooc.com//climg/5ecc71e3090bfef508340145.jpg

http://img1.sycdn.imooc.com//climg/5ecc738009b41f8809980323.jpg

即产品的banners和评论的img_list都关联到了ImageFile,如果不使用通用关联,则无法区分关联到ImageFile的图片是产品的banners,还是评论的img_list,通用关联通过content和object_id可以区分出是哪一个模型的产品。

祝学习愉快~


  • Will6397264 提问者 #1
    也就是使用通用关联后可以更方便的对imagefile进行分类,如果不需要分类则不使用也可以对吧?所以上图问题中截图store中未使用通用关联对吧?
    2020-05-26 21:38:51
  • 好帮手慕笑蓉 回复 提问者 Will6397264 #2
    同学,你好。是可以这样理解的。使不使用看需不需要不同模型关联到一个模型,且在一个模型中,能够辨别每条记录对应哪一个模型。 祝学习愉快~
    2020-05-27 09:30:23
好帮手慕笑蓉 2020-05-25 14:10:12

同学,你好。GenericRelation是通用关联,使用通用关联是为了让产品上传的banner图和评论上传的图共同关联到一个模型,这样就不用为产品上传的banner图和评论上传的图分别建立关联表了,而classify和tag在设计时,就不用通用关联到共有的一个模型,因此也不需要用到GenericRelation。

同学截图store中没使用GenericRelation,一般产品表和店铺表是不需要设计成关联同一张表的情况的,此处用与不用GenericRelation完全看表的设计。

如果解决了你的疑惑,请采纳,祝学习愉快~ 


  • 提问者 Will6397264 #1
    懂了,ImageField和ImageFile的区别,但是通用关联是啥意思?还是不理解啥时候使用GenericRelation,使用了有啥好处?
    2020-05-25 22:15:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师