Вопрос

i have this query

Location.objects.filter(locations_rate__rate=search_rate).distinct('id')

how can i set distinct() into **kwargs?

i tried:

s_kwargs = {}
s_kwargs['locations_rate__rate'] = request.GET.get('rate')

but dont know where to set distinct('id')? I have many other filters like locations_rate__rate besides this, I will ask with if locations_rate__rate in s_kwargs and then set this distinct() maybe?

Это было полезно?

Решение

**kwargs is just a dictionary.

You can do:

def myView(request, *args, **kwargs):
    #Code here.
    distinct = kwargs.pop('distinct') #the distinct parameter(s) {'distinct': 'rate'}
    #verification and validation of distict
    Location.objects.filter(locations_rate__rate=search_rate).distinct(distinct)
    #I assumed only 1 distinct argument

    ...

If you want dynamic parameters,

params = {'rate': distinct} #where distinct is distinct = kwargs.pop('distinct')
things = Thing.object.filter(**params)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top