Calling filter with a variable for field name

9-bits picture 9-bits · Feb 3, 2012 · Viewed 8.3k times · Source

Is there a way to call filter on a queryset where one of the fieldnames is a variable?

For example I have something like:

models.py

class Playlist(models.Model):
    video = ...

views.py

field_name = 'video'
Playlist.objects.filter(field_name=v)

Which of course results in an error that field_name is not an attribute upon which Playlist can be filtered.

Answer

nisc picture nisc · Feb 3, 2012

Playlist.objects.filter(**{field_name: v})