这是打印工程师之后的输出,这里我只想要工程师萨钦,拉胡尔,阿尔塔夫的名字
[<Engineer: Sachin>, <Engineer: Rahul>, <Engineer: Altaf>]
def enginer(request):
engineer=Engineer.objects.all()
print engineer
答案 0 :(得分:3)
只检索名称的更简洁方法是将flat=True
传递给values_list
函数来使用平面列表:
Engineer.objects.values_list('name', flat=True)
这将返回:
[u'Sachin', u'Rahul', u'Altaf']
如果您要检索单个列,则只能使用flat=True
。
但是,如果你仍然想要使用工程师对象,你最好使用列表理解来构建一个列表:
>>> engineers = Engineer.objects.all()
>>> names = [x.name for x in engineers]
>>> print names
[u'Sachin', u'Rahul', u'Altaf']
>>> for engineer in engineers:
... do_something()
答案 1 :(得分:0)
你可以这样做:
engineer=Engineer.objects.values('name').all()
答案 2 :(得分:0)
如果你想要的只是名字,你可以使用values_list()
:
Engineer.objects.values_list('name')
这将返回类似:
[(u'Name1', ), (u'Name2', )]
与返回字典列表的values()
不同,values_list()
返回元组列表,据我所知,这是仅检索标签的最简单,最简洁的方法。