我想知道當我做查詢時觸摸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 –