我正在尝试通过文本过滤python中的查询集
模型是:
models.Offer
id = pk
description = text
我正在尝试像这样过滤它:
someText = self.shave_marks(someText)
offers = offers.filter(description__icontains=someText)
在shave_marks替换特殊字符的地方,例如:ç将变为c。
数据库中的文本(在描述字段中)也具有特殊字符,我需要的是先“刮掉”描述文本,然后进行过滤。
任何帮助,非常感谢!!
答案 0 :(得分:1)
这个怎么样?
offers = [(x, x.description)) for x in offers.objects.all()]
required_offers = []
for key, value in offers:
if someText in shave_marks(value):
required_offers.append(key)
答案 1 :(得分:0)
您可以做的是,创建一个扩展charfield的自定义字段。使用该字段覆盖方法get_prep_value
我找不到具体的例子,但是从理论上讲应该可以。
class SpecialField(models.CharField):
def get_prep_value(self, value):
return shave_marks(shave_marks)