带有字符串变量字段的Django过滤器

2024-09-27 00:15:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用一个字段过滤模型,但我想把字段作为字符串变量传递。我该怎么做

例如:

the_field = 'name'
TheModel.objects.filter(the_field='Gazelle')

我应该用什么替换\u字段


Tags: the字符串name模型fieldobjectsfiltergazelle
1条回答
网友
1楼 · 发布于 2024-09-27 00:15:55

您可以使用字典解包

the_field = 'name'
TheModel.objects.filter(**{the_field: 'Gazelle'})

注意字典前面的两个星号(**)。如果使用f(**{'a': 4})调用函数,则等同于使用f(a=4)调用函数

或者可以使用Q对象,并向其传递一个表示键和值的2元组:

from django.db.models import Q
the_field = 'name'
TheModel.objects.filter(Q((the_field, 'Gazelle')))

相关问题 更多 >

    热门问题