从逗号sep过滤。在django模型中列出“全字”

时间:2013-11-18 13:47:55

标签: django django-models

任何人都可以帮忙解决这个问题,我有一个这样的模型:

class Searchpage(models.Model):
    slug = models.SlugField(max_length=255, unique=True)
    keywords = models.CharField(max_length=255, blank=True, null=True)

“关键字”是逗号sep。列表ex。 “foo,foobar,foo bar”

现在我想创建一个与单词...

匹配的过滤器
Searchpage.objects.filter(keywords__contains="foo")

匹配正确

Searchpage.objects.filter(keywords__contains="bar")

匹配,但不正确...只有整个单词..

我希望它有意义! ;)

1 个答案:

答案 0 :(得分:1)

我可能会使用额外的模型和M2M关系来过滤关键字。还有专门的包,如django-taggit

但您也可以使用正则表达式过滤器:

Searchpage.objects.filter(keyword__regex=r'\bbar\b')

(尚未对此进行测试,但我认为它应该可行)