Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django模型中查找对象有很多关系_Django - Fatal编程技术网

如何在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')