我想为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()函数提供参数列表,但是如何?
答案 0 :(得分:3)
queryset = self.model.objects.only(*self.display_list)
*
表示"解压缩此列表并将其项目用作参数"。有关说明,请参阅this question。