3个问题,Models创建的字段,无法完全匹配MySQL数据表中的字段?

3个问题,Models创建的字段,无法完全匹配MySQL数据表中的字段?

问1和问3的字段为何没有同步到数据表上?

问2,content_id为何没有,与两个表Store.id和Product.id的字段设置外键约束?id匹配不上怎么处理?

问3,数据表collection中没有content_obj字段,如何通过此字段锁定商品?是不是有点多余啊?

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



正在回答 回答被采纳积分+1

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

1回答
好帮手乔木 2019-10-30 14:01:56

同学你好:

1    在model中定义ForeignKey字段,并关联到ContentType表,通常这个字段命名为“content_type”

,在model中定义PositiveIntegerField字段,用来存储关联表中的主键,通常这个字段命名为“object_id”.

在model中定义GenericForeignKey字段,传入上述两个字段的名字,将上述的字段产生联系,形成一个实例对象(collection)。不会生成字段。

直接使用obj.content_object来查看收藏的商铺或者商品。obj代表collection中的某一条记录(一个商铺或者商品对象)。

是创建一个 GenericRelation用于反向查询,不生成字段。使用obj.collentions.all()可以查询收藏该商品的所有收藏记录,obj代表Product中的某种商品记录。

content_type:关联的外键的模型。

object_id : 关联的是ContentType模型中(视频中是)店铺模型表中和商品模型表中的id。

根据content_type_id(ContentType中的id)和object_id(店铺模型表中和商品模型表中的id)就能确定收藏的是商品或者店铺模型下的某条信息。

content_type_id:确定模型。

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

object_id:根据id确定店铺或者商品。

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

3 这个是必须要的。

三步骤:  

在model中定义ForeignKey字段,并关联到ContentType表。通常这个字段命名为“content_type”。

在model中定义PositiveIntegerField字段,用来存储关联表中的主键。通常这个字段命名为“object_id”。

在model中定义GenericForeignKey字段,传入上述两个字段的名字,形成一个实例对象(collection)。

如果我解决了同学的问题,请采纳!学习愉快^_^。


  • Mr__Xin #1
    老师obj是啥呢
    2020-03-25 13:15:42
  • 同学,你好。obj代表collection表中的某一条记录的对象。祝学习愉快~~~~
    2020-03-25 14:42:58
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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