**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)