有没有办法在查询集上调用过滤器,其中一个字段名是变量?
例如,我有类似的东西:
models.py
class Playlist(models.Model):
video = ...
views.py
field_name = 'video'
Playlist.objects.filter(field_name=v)
当然会导致错误field_name
不是可以过滤Playlist
的属性。
答案 0 :(得分:48)
Playlist.objects.filter(**{field_name: v})
答案 1 :(得分:0)
要将字段名称字符串与icontains
一起使用。
尝试一下
field_name = 'video'
field_name_icontains = field_name + '__icontains'
Playlist.objects.filter(**{field_name: v})