Skip to main content
 首页 » 编程设计

python之django查询中传入参数

2024年11月01日33落叶

这是我的案例:

我有不同类型的用户共享一个一般 View ,但我想为他们返回不同的字段。我对特定字段使用了 values(),例如 values('f1', 'f2'),它返回了查询集。

然后,我想用一个变量来存储要查询的字段,并在values()中传递,但是失败了。我的代码片段如下所示:

list = ('f1', 'f2') 
e = Entity.objects.all().values(list) 

我尝试了 tuple、list、str,但都失败了。

错误信息:

object has no attribute 'split'

获取此功能的正确方法是什么?

请您参考如下方法:

您需要unpack the list :

fields = ('f1', 'f2') 
e = Entity.objects.all().values(*fields) 

此外,不要将变量命名为 list - 它会隐藏内置变量类型:

>>> a = list() 
>>> a 
[] 
>>> list = ('f1', 'f2') 
>>> a = list() 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
TypeError: 'tuple' object is not callable 

希望对您有所帮助。