我想知道当我做查询时触摸db。更确切地说,是在查询执行时:django - 如何与kwargs做到这一点
我有这个kwargs DIC:
kwargs = {'name__startswith':'somename','color__iexact':'somecolor'}
但仅限于name__startswith
查询,我需要distinct()
。而不是为color__iexact
。
我想,我会在环路name__startswith
的distinct()
这样设置:
for q in kwargs:
if q == 'name__startswith':
Thing.objects.filter(name__startswith=somename).distinct('id')
,然后查询所有动态:
allthings = Thing.objects.filter(**kwargs)
但这是有点错了,我似乎是在这里做两件不同的事情..
我该如何动态地做这两个查询?
感谢的人,我决定'上的所有查询,这亘古不变的伤害任何'distinct''。感谢您的帮助无论如何 – doniyor
使用'distinct'可以显着减慢您的查询:http://stackoverflow.com/questions/1977739/is-distinct-an-expensive-query-in-django –