我正在尝试将参数传递给具有键的方法,以获取Django queryset。密钥将取决于用户通过的内容。
这是一个例子:
过滤器的初始值将为id = 1(一个字符串),如果用户传入其他过滤器(例如title = blahblahblah),则我将在其中添加一个基于逗号的拆分
filter_split = filters.split(",")
itemFilter = Items.objects # from Django
for f in filter_split:
itemFilter = itemFilter.filter(f)
我还尝试过将剩余的字符串拆分为两个单独的值(键和值),并将其传递为:
itemFilter = itemFilter.filter(key = value)
没有运气。
如何将编程参数传递给Python中的方法?还是有另一种方法可以使用Django以编程方式过滤查询集?
您可以在参数列表中使用*list
和传递编程参数**dict
。
a = [2,3,4]
function(1, *a) # equal to function(1,2,3,4)
b = {'x':42, 'y':None}
function(1, **b) # equal to function(1, x=42, y=None)
在您的情况下,只需创建一个字典,然后从用户输入和调用中分配键值对itemFilter.filter(**your_dict)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句