【发布时间】:2018-05-13 18:35:11
【问题描述】:
我正在尝试循环遍历不同的查询集,同时不重复自己太多,并且在使用 queryset 类时遇到了问题。 这不一定完全是 Django 问题。
我想要做的是使用我的密钥列表,它对应于 django 模型的列名,从这些列名创建数据列表,我想做的是这样的:
if needthisdata==1:
needdata=['column1', 'column2', 'column3']
else:
needdata=['column1', 'column4', 'column7']
entry=djangomodel.get.all().filter(identifier='id')
dictitems=[]
for n in range(0, len(needdata)):
if n==0:
dictitems=[entry.needdata[n]]
else:
dictitems.append(entry.needdata[n])
由于查询集没有需要数据属性,这当然不起作用,有没有办法以这种方式为具有字符串的类调用属性?
【问题讨论】:
-
不应该是
identifier,而不是itentifier吗? -
你可以顺便使用
getattr,但是有一种更有效的方法。 -
此外,
entry是一个查询集(理论上可以包含 多个 元素)。 -
固定的标识符,@WillemVanOnsem,它是一个包含多个元素的查询集,但是我没有在我的实际代码中编写 foo 循环,而是对其进行了一点压缩,语法有点奇怪,因为其中。去测试你的解决方案。
标签: python django class django-models django-queryset