Django搜索多对多查询

JRE*_*EAM 4 django django-models

我正在尝试使用ManyToMany关系进行搜索查询,这是我到目前为止所做的:

designs = designs.filter(Q(title__icontains = search) | 
                         Q(tags__icontains = search))
Run Code Online (Sandbox Code Playgroud)

你知道如何搜索查询中的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
Run Code Online (Sandbox Code Playgroud)

我查找的大多数问题都是使用过滤器而我不是Django的主人,所以我希望这不会增加一个重复的问题.

Pau*_* Bu 9

用正确的做到这一点field_lookup:tags__title__icontains = search:

designs = designs.filter(Q(title__icontains = search) | 
                         Q(tags__icontains = search)  |
                         Q(tags__title__icontains = search))
Run Code Online (Sandbox Code Playgroud)

字段查找非常有用,您应该查看文档.