9-b*_*its 24 django django-models django-queryset
有没有办法在查询集上调用过滤器,其中一个字段名是变量?
例如,我有类似的东西:
models.py
class Playlist(models.Model):
video = ...
Run Code Online (Sandbox Code Playgroud)
views.py
field_name = 'video'
Playlist.objects.filter(field_name=v)
Run Code Online (Sandbox Code Playgroud)
这当然导致错误field_name不是Playlist可以过滤的属性.
nis*_*isc 50
Playlist.objects.filter(**{field_name: v})
sha*_*fik 10
将字段名称字符串与icontains.
尝试这个
field_name = 'video'
field_name_icontains = field_name + '__icontains'
Playlist.objects.filter(**{field_name_icontains: v})
Run Code Online (Sandbox Code Playgroud)