假设我有以下查询:
query_result = Mymodel.objects.values('price').filter(price__gte=0)
Run Code Online (Sandbox Code Playgroud)
如果我想概括查询并将其放在函数中,我可以'price'用变量替换:
def price_query(column_name):
query_result = Mymodel.objects.values(column_name).filter(column_name__gte=0)
return query_result
price_query('price')
Run Code Online (Sandbox Code Playgroud)
第一次替换'price'可以column_name正常工作但如何使用__gte变量而不是字段名称进行比较.
任何帮助深表感谢.
您可以解压缩字典以提供关键字参数:
def price_query(column_name):
filter_kwargs = {
"{}__gte".format(column_name): 0
}
query_result = Mymodel.objects.values(column_name).filter(**filter_kwargs)
return query_result
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
876 次 |
| 最近记录: |