使用字段名称的变量调用过滤器

时间:2012-02-03 00:37:33

标签: django django-models django-queryset

有没有办法在查询集上调用过滤器,其中一个字段名是变量?

例如,我有类似的东西:

models.py

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

views.py

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

当然会导致错误field_name不是可以过滤Playlist的属性。

2 个答案:

答案 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})