仅为Django的查询集提供动态参数列表()

时间:2015-08-08 12:54:31

标签: python django list

我想为Django's queryset only() function提供动态的字段列表。 在视图中,您可以手动编写某事。喜欢

queryset = self.model.objects.only('id', 'name', 'someotherfield')

但是,我想创建这个视图(它是一个列出表中模型的所有对象的视图,但只列出我选择的模型的4或5个字段),以便其他视图子类化此视图并可以提供一个参数,其中包含应在表格中显示的相应模型的字段列表。

但如果我将上面的例子重写为

queryset = self.model.objects.only(self.display_list)

和display_list以

的形式给出
display_list = ['id', 'name', 'latitude', 'longitude']

它不起作用,我得到一个“unhashable type:'list'”TypeError。

必须以某种方式为带有参数的only()函数提供参数列表,但是如何?

1 个答案:

答案 0 :(得分:3)

queryset = self.model.objects.only(*self.display_list)

*表示"解压缩此列表并将其项目用作参数"。有关说明,请参阅this question