如何在Django模型中使用ManyToManyField
我试图找到一种简单的方法来查找具有相同标签的博客。如何在Django模型中使用ManyToManyField,django,Django,我试图找到一种简单的方法来查找具有相同标签的博客。 例如,某个博客上有“wood”、“desk”、“furniture”等标签。我想找到一些至少有一个标记的博客。请参阅此处有关如何筛选关系的文档: 要了解如何使用多个过滤器(标签为“wood”或“desk”或“furniture”的博客),请参见以下示例: 下面的代码应该可以满足您的要求: class Blog(models.Model): title = model.CharField(max_length=100) text
例如,某个博客上有“wood”、“desk”、“furniture”等标签。我想找到一些至少有一个标记的博客。请参阅此处有关如何筛选关系的文档: 要了解如何使用多个过滤器(标签为“wood”或“desk”或“furniture”的博客),请参见以下示例: 下面的代码应该可以满足您的要求:
class Blog(models.Model):
title = model.CharField(max_length=100)
text = TextField()
tags = ManyToManyField(‘Tag’,blank=True)
…
class Tag(models.Model):
tag = models.ChatField(max_length=50, unique=True)
…
请针对您的问题。如何在运行时实现这一点?在运行时,我不知道有多少标记。@eachone“在运行时”是什么意思?我上面发布的代码允许您查找至少有一个标记的博客(并将它们保存在名为“blogs”的变量中)。“博客”中的项目数量是与筛选器匹配的标记数量。
blogs = Blog.objects.filter(tags__tag='wood').filter(tags__tag='desk').filter(tags_tag='furniture')