Django 在查询过程中检索记录的属性列表

Django 在查询过程中检索记录的属性列表,django,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.

我有模型表,所以标签和文章

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>
我可以通过查询直接获取str_标签吗?

您可以使用:

Aso要获得最后一篇文章,只需使用:

您可以使用:

Aso要获得最后一篇文章,只需使用:


不必进行两次查询,您可以定义一个类似这样的查询,因为它的M2M字段ArticleTag=Article.tags.through, 然后您可以像tags=ArticleTag.objects.filter(article\u id=id)
然后您可以执行str_tags=“,”.join([tag.name for tags in tags])而不是进行两次查询,您可以定义一个类似这样的查询,因为它的M2M字段ArticleTag=Article.tags.through, 然后您可以像tags=ArticleTag.objects.filter(article\u id=id)
然后您可以执行str_tags=“,”。join([tag.name for tags in tags])

您可以定义这样的模型,因为它的M2M字段ArticleTag=Article.tags。通过此链接,您可以将注释发送给answer吗@DoubleO46由于M2M字段ArticleTag=Article.tags,您可以定义一个这样的模型,而不必进行两次查询。通过,您可以将注释传递给answer吗@doubleo46
In [32]: tags = a.tags.all()
In [32]: tags
Out[32]: <QuerySet [<Tag: python>, <Tag: django>, <Tag: git>, <Tag: javascript>]>
In [36]: str_tags = ",".join([tag.name for tag in tags])
In [36]: str_tags   
Out[36]: 'python,django,git,javascript'
tag_names = ",".join(a.tags.values_list('name', flat=True))
a = Article.objects.last()