如何在视图上的关键字对象过滤器上传递变量?
我有:
my_object = MyModel.objects.filter(my_keyword =my_filter_values)
我想从一个来自字符串的变量中获取my_keyword,如下所示:
my_string = 'my_keyword'
my_object = MyModel.objects.filter(my_string=my_filter_values)
但这不起作用,因为Django不知道来自my_string
的{{1}}。
编辑:我发现this SO question - 我会测试并报告回来。
答案 0 :(得分:17)
您可以这样做:
my_filter = {}
my_filter[my_keyword] = my_filter_value
my_object = MyModel.objects.filter(**my_filter)
例如,您的变量可能是:
my_keyword = 'price__gte'
my_filter_value = 10
这将导致获得price >= 10
的所有对象。如果您想查询多个字段,可以在my_filter[my_keyword]
下面添加另一行:
my_filter[my_keyword] = my_filter_value
my_filter[my_other_keyword] = my_other_filter_value