模型类多表操作;中间件使用

模型类多表操作

模型类一对多,多对多。外键维护。自关联。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
user2假设是用户,news是用户发的帖子。一对多,一个用户可以发多个帖子。那么在sender里,to指向user2,on delete外键约束。然后我生成迁移文件,开始迁移。
在MySQL中生成的文件里,news里的sender id就指向了user2里的id。然后我们就开始在终端里,对一对多文件进行操作。
在这里插入图片描述
分别实例化对象,然后加入数据。那么news.sender= user就让两个指向连了起来。在数据库中,就可以看到sender id就是id了。同时,我们也可以通过代码指令,看到谁发表了什么帖子,和帖子是谁发表的。
在这里插入图片描述
这两行代码可以看到帖子是谁发送的。他视频中谁发送了哪些帖子用的是user.news_set.all().[0].topic这行代码,说是user找到news是通过news_set这种方式。news找到user是通过to指向的。我做的时候发现问题,是因为我加上了后面定义的related name= sender set这个代码,把它删掉应该就没问题。
以上,是一对多的操作,接下来,是多对多的操作。因为上面user找到news是通过news_set的方式,但是现在我把news定义为用户收藏的帖子,帖子可以被多个用户收藏,用户也可以收藏多个帖子,那么我再通过这种方式,找过来的是sender呢,还是collector呢,所以后面就需要加上related_name这个属性。
在这里插入图片描述
然后,还是生成迁移文件,执行迁移文件,开始shell,from dashuaige.models import *,之后的操作步骤都是差不多的。

自关联

解决比如北京下面有朝阳,海淀这种问题的时候,用到自关联。

在这里插入图片描述
to self,其它的操作也是差不多。

中间件使用

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值