如何在Django模型中查找对象有很多关系
我也发过同样的帖子。但我无法获得我想知道的。所以,我再次发帖如何在Django模型中查找对象有很多关系,django,Django,我也发过同样的帖子。但我无法获得我想知道的。所以,我再次发帖 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=
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)
…
我试图找到一种简单的方法来查找具有相同标签的博客。
例如,某个博客有标签“1”、“2”、“3”。我想找到一些至少有一个标签的博客。
有这样的对象:
Blog A Object has tag [“1”, ”2”, ”3”]
Blog B Object has tag [“1”, “3”]
Blog C Object has tag [“2”, “3”]
Blog D Object has tag [“1”, “2”]
Blog E Object has tag [“3”, ”4”, ”5”]
Blog F Object has tag [“6”, ”7”, ”8”]
在这种情况下。我想发现博客至少有一个博客A的标签[“1”、“2”、“3”]
所以结果必须是[A,B,C,D,E]
我认为,下面不是一个解决方案
blogs = Blog.objects.filter(tags__tag='1').filter(tags__tag='2').filter(tags_tag='f3')
或
因为这样做可能会导致[Blog A]。尝试以下方法:
blogs = Blog.object.filter(tags__tag__in=['1', '2', '3'])
试试这个:
blogs = Blog.object.filter(tags__tag__in=['1', '2', '3'])
假设你有一个标题为“a”的博客,你想找到与博客“a”类似的博客
b = Blog.objects.get(title='a')
b_tags = b.tags.all()
similar_blogs = Blog.objects.filter(tags__in=b_tags)
假设你有一个标题为“a”的博客,你想找到与博客“a”类似的博客
b = Blog.objects.get(title='a')
b_tags = b.tags.all()
similar_blogs = Blog.objects.filter(tags__in=b_tags)
相似的blogs=Blog.objecrs.filter(tags\uu in=b_tags).distinct().exclude(title='a')相似的blogs=Blog.objecrs.filter(tags\uu in=b_tags).distinct().exclude(title='a')