如何将动态查找从 request.GET 权限传递到 DRF 中进行过滤?
How to pass dynamic lookups from the request.GET right to filter in DRF?
在 request.GET
中发送这样的查询 /?field1=value1 我有 {'field1': ['value1']}
.
这样做 .filter(**request.GET)
我发送给它 (field1=['value1'])
而不是 (field1='value1')
。
如何使用字符串而不是数组?
您可以使用 .dict()
[Django-doc] 将其转换为字典。如果一个键包含多个值,例如 ?field1=value1&field1=value2
,它将采用 last 值。
例如:
>>> QueryDict('field1=value1').dict()
{'field1': 'value1'}
>>> QueryDict('field1=value1&field1=value2').dict()
{'field1': 'value2'}
因此,例如,您可以将其传递给具有 some_func(**request.GET.dict())[=25 的函数=].
在 request.GET
中发送这样的查询 /?field1=value1 我有 {'field1': ['value1']}
.
这样做 .filter(**request.GET)
我发送给它 (field1=['value1'])
而不是 (field1='value1')
。
如何使用字符串而不是数组?
您可以使用 .dict()
[Django-doc] 将其转换为字典。如果一个键包含多个值,例如 ?field1=value1&field1=value2
,它将采用 last 值。
例如:
>>> QueryDict('field1=value1').dict()
{'field1': 'value1'}
>>> QueryDict('field1=value1&field1=value2').dict()
{'field1': 'value2'}
因此,例如,您可以将其传递给具有 some_func(**request.GET.dict())[=25 的函数=].