我想知道在进行查询时何时触摸 db。更准确地说,查询何时执行:
我有这个 kwargs dic:
kwargs = {'name__startswith':'somename','color__iexact':'somecolor'}
但仅用于name__startswith
查询,我需要distinct()
。而不是为了color__iexact
。
我想,我会像这样设置name__startswith
indistinct()
循环:
for q in kwargs:
if q == 'name__startswith':
Thing.objects.filter(name__startswith=somename).distinct('id')
然后动态查询所有:
allthings = Thing.objects.filter(**kwargs)
但这在某种程度上是错误的,我似乎在这里做两件不同的事情..
我怎样才能动态地做这两个查询?