假设我们有一个 dvd
我们要搜索的表 price=14.99
和 rating=18
.我们可以这样做:
#Making some dictionary
dict1 = {}
#Adding some stuff
dict1['price']=14.99
dict1['rating']18
#Use dict as filter
dvd.objects.filter(**dict1)
有没有办法添加额外的参数,如:
dvd.objects.filter(title__icontains='the')
我只想为用户增加一点灵活性,因为目前他们可以选择他们想要搜索的字段并准确指定他们想要的内容。但是我想搜索部分匹配项,例如
__icontains
做。我也想要 __gt
, __lt
.这可能吗?
最佳答案
代替:
dict['price'] = 14.99
你可以这样做:
dict['price__gte'] = 10
dict['price__lte'] = 15
当您使用 **kwargs 时,以下内容是相同的:
Model.objects.filter(price__gte=10, price__lte=15)
# or
kwargs = {'price__gte': 10,
'price__lte': 15}
Model.objects.filter(**kwargs)
关于django - 向 Objects.filter 添加额外参数(通过 Dict)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1763495/