Idiomatic Django conditional filter queryset I am sharing a viewset between two types of routes in Django: one is a nested route (/users/:id/comments/:id/), and a regular route (/comments/:id/). The query set returned is either filtered by the user_pk or it's not. What is an idiomatic way of writing the following?

if(user_pk):
    queryset = Comment.objects.filter(pk=pk, user=user_pk)
else:
    queryset = Comment.objects.filter(pk=pk)
It's fine.
As this function doesn't have a default value for parameters,
you would have to use a dictionary if you want to make it more DRY.
I'd do something like:

kwargs = {
    'pk': pk,
    'user': user_pk
}
if not kwargs['user']:
    del kwargs['user']
queryset = Comment.objects.filter(**kwargs)