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