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

模型类多表操作

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

在这里插入图片描述
在这里插入图片描述
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,其它的操作也是差不多。

中间件使用

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

发布了14 篇原创文章 · 获赞 0 · 访问量 211

猜你喜欢

转载自blog.csdn.net/weixin_45620570/article/details/104080464