我正在尝试使用 ManyToMany 关系查询搜索, 这就是我到目前为止所做的:
designs = designs.filter(Q(title__icontains = search) |
Q(tags__icontains = search))
您知道我如何搜索查询中的tags.title字段吗?
以下是型号,我把它们清理干净,所以它们不长:)
class Design(models.Model):
title = models.CharField(max_length = 50, default = "")
slug = models.SlugField(unique = True)
user = models.ForeignKey(User, related_name = "design_user")
description = models.TextField()
tags = models.ManyToManyField(to = Tags)
class Tags(models.Model):
title = models.CharField(max_length = 50, unique = True)
# Allows the category to list as a dropdown in the admin
def __unicode__(self):
return self.title
我查找的大部分问题都是使用过滤器而我不是Django主人所以我希望这不会增加一个重复的问题。
答案 0 :(得分:9)
使用正确的field_lookup
:tags__title__icontains = search
:
designs = designs.filter(Q(title__icontains = search) |
Q(tags__icontains = search) |
Q(tags__title__icontains = search))
字段查找非常有用,您应该查看the docs。
答案 1 :(得分:0)
您可以使用tags__title__icontains
作为
designs = designs.filter(Q(title__icontains = search) |
Q(tags__title__icontains = search))