我在django 1.8表中有一些数据: “关键”列值=“a.2”,“b.4”,“c.6” 我想用[“a”,“b”]过滤它并忽略点后面的部分。
Blog.objects.filter(key__startswith=['a','b'])
什么都不返回
Blog.objects.filter(key__contains=['a','b'])
什么都不返回
Blog.objects.filter(key__in=['a%','b%'])
什么都不返回
与循环相比,是否有一种有效的方法可以做到这一点?
答案 0 :(得分:3)
您可以使用Q
个对象进行尝试:
from django.db.models import Q
Blog.objects.filter(Q(key__startswith='a') | Q(key__startswith='b'))
https://docs.djangoproject.com/en/1.8/topics/db/queries/#complex-lookups-with-q
或使用regex
或iregex
:
Blog.objects.filter(key__iregex=r'^(a|b)\.')