如何将过滤器关键字上的字符串传递给 Django 对象模型?

2024-01-10

如何在视图的关键字对象过滤器上传递变量?

I have:

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 from MyModel.

编辑:我发现了这个问题 https://stackoverflow.com/questions/2932648/how-do-i-use-a-string-as-a-keyword-argument/2932658#2932658- 我会测试并报告。


你可以这样做:

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将过滤器关键字上的字符串传递给 Django 对象模型? 的相关文章

随机推荐