django - 在查询过程中检索记录的属性列表
问题描述
我有模型表,所以标签和文章,
class Tag(models.Model):
owner = models.ForeignKey(User,on_delete=models.CASCADE)
name = models.CharField(max_length=50)
...
class Article(models.Model):
tags = models.ManyToManyField(Tag, blank=True)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
...
我打算检索指定文章的标签并将它们转换为字符串:
1、获取最新文章:
In [26]: articles = Article.objects.all()
In [27]: len(articles)
Out[27]: 41
In [29]: a = articles[40]
In [30]: a
Out[30]: <Article: Test new tags>
2、获取它的标签查询集
In [32]: tags = a.tags.all()
In [32]: tags
Out[32]: <QuerySet [<Tag: python>, <Tag: django>, <Tag: git>, <Tag: javascript>]>
3、将queryset转为stringset
In [36]: str_tags = ",".join([tag.name for tag in tags])
In [36]: str_tags
Out[36]: 'python,django,git,javascript'
我可以通过查询直接获取 str_tags 吗?
解决方案
您可以使用values_list('name', flat=True)
:
tag_names = ",".join(a.tags.values_list('name', flat=True))
Aso 要获得最后一篇文章,只需使用last()
:
a = Article.objects.last()
推荐阅读
- angular - 共享服务中的私有主题与公共只读主题
- python - Django中的复选框,未将Bootstrap复选框链接到模型/数据库,这两种方式都不起作用
- javascript - RXJS Subject().mergeMap(funcThatReturnsObservable) 返回 Observable
而不是主题 - python-datetime - 在 python 中将 (float,getdate()) sql 转换为时间
- javascript - 仅显示路线上的一个组件并隐藏所有其他组件
- mongodb - Mongoose 鉴别器和索引
- c# - SqlDataReader.Read() 错误,从存储过程中读取值
- powerbi-desktop - 报告与视觉相矛盾的过滤器
- c# - 单击按钮后更新带有输入的文本框
- html - 无法使用 html 显示电影