简单写一下多对多查询
model 不是多对多的字段我就没写上来的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
class Tag(models.Model): name = models.CharField(max_length=20,verbose_name= '标签' ) add_time = models.DateField( default =datetime.now) class Meta: verbose_name = '标签' verbose_name_plural = verbose_name def __str__(self): return self.name class Post(models.Model): tag = models.ManyToManyField(Tag,verbose_name= "标签" , null =True,blank=True,related_name= 'tags' ) add_time = models.DateField( default =datetime.now) class Meta: verbose_name = "文章" verbose_name_plural = verbose_name def __str__(self): return self.name |
在编写view时 我需要 查出 某一篇文章 他所拥有的tags 和然后利用这些tags进行相关推荐 该如何查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class ArticleView(View): def get (self, request, post_id): post = Post.objects. get (id=post_id) #获取该post所有tags all_tags = post.tag.all() #获取该tags所有的id all_tags_id = [tag.id for tag in all_tags] #查询所有文章中有这些tags的文章 tag_post = Post.objects.filter(tag__id__in=all_tags_id)[:5] return render(request, 'article.html' , { 'post' : post, 'all_tags' :all_tags, 'tag_post' :tag_post }) |
最新更新
运算符
在列表之间移动元素
Python循环语句
Python 列表的定义
Python条件语句
函数的定义
Python基础语法
随机数函数
Python 数字类型
Python 使用制表符和换行符来添加空白
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
access教程之Access简介
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能