在django查询中传入参数

时间:2014-03-30 06:16:26

标签: python django

以下是我的案例:

我有不同类型的用户共享一个通用视图,但我希望为它们返回不同的字段。我将values()用于特定字段,例如values('f1', 'f2'),并返回了查询集。

然后,我想使用变量存储要查询的字段,并在values()中传递,但失败了。我的片段看起来像这样:

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

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

错误消息:

  

对象没有属性' split'

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

1 个答案:

答案 0 :(得分:2)

您需要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

希望有所帮助。