python中的动态变量名

phi*_*o20 4 python django

我想调用带有字段名称过滤器的查询,在运行时我不知道...不确定如何构造变量名称......或者我可能已经累了.

field_name = funct()
locations = Locations.objects.filter(field_name__lte=arg1)
Run Code Online (Sandbox Code Playgroud)

如果funct()返回name将等于

locations = Locations.objects.filter(name__lte=arg1)
Run Code Online (Sandbox Code Playgroud)

不知道该怎么做......

Fel*_*ing 10

您可以通过将字典解压缩为关键字参数来创建字典,设置参数并将其传递给函数:

field_name = funct()
params = {field_name + '__lte': arg1,       # field_name should still contain string
          'some_other_field_name': arg2}

locations = Locations.objects.filter(**params)

# is the same as (assuming field_name = 'some_name'):
# Locations.objects.filter(some_name__lte=arg1, some_other_field_name=arg2)
Run Code Online (Sandbox Code Playgroud)