Reputation: 10775
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.
Upvotes: 42
Views: 16534
Reputation: 6404
To use field name string with icontains
.
Try this
field_name = 'video'
field_name_icontains = field_name + '__icontains'
Playlist.objects.filter(**{field_name_icontains: v})
Upvotes: 10