模型过滤器 django 中的标题和 title_icontains 不同
different between title and title_icontains in model filter django
django 中的标题和 title_icontains 有什么区别?
from .model import product
product.objects.filter(title='blah')
product.objects.filter(tite__icontains='blah')
可能是 title__icontains=…
所以有 两个 连续下划线 (__
)。在这种情况下,您可以使用 __icontains
lookup [Django-doc]。正如文档所说,这是一个:
Case-insensitive containment test.
因此它会查找标题 包含 blah
的 Product
。例如 fooblah
、blahfoo
、fooblahbar
。它以 insensitive 方式执行此操作,因此标题为 FooBlah
、BLAHfoo
和 FooBlAHBAR
的产品也将被保留。
第一个表单 ...filter(title='value')
将 return 所有 objects 其标题将与值完全匹配。
而第二种形式,正确写为 ...filter(title__icontains)
将 return 所有 objects 其标题包含该值,但任何 upper/lower 大小写字母将匹配。
这里的i
表示“忽略大小写”。
tite__icontains
是查找字符串,但是不区分大小写。
django 中的标题和 title_icontains 有什么区别?
from .model import product
product.objects.filter(title='blah')
product.objects.filter(tite__icontains='blah')
可能是 title__icontains=…
所以有 两个 连续下划线 (__
)。在这种情况下,您可以使用 __icontains
lookup [Django-doc]。正如文档所说,这是一个:
Case-insensitive containment test.
因此它会查找标题 包含 blah
的 Product
。例如 fooblah
、blahfoo
、fooblahbar
。它以 insensitive 方式执行此操作,因此标题为 FooBlah
、BLAHfoo
和 FooBlAHBAR
的产品也将被保留。
第一个表单 ...filter(title='value')
将 return 所有 objects 其标题将与值完全匹配。
而第二种形式,正确写为 ...filter(title__icontains)
将 return 所有 objects 其标题包含该值,但任何 upper/lower 大小写字母将匹配。
这里的i
表示“忽略大小写”。
tite__icontains
是查找字符串,但是不区分大小写。