我只想要工程师表中的工程师姓名

时间:2014-04-14 10:44:58

标签: django

这是打印工程师之后的输出,这里我只想要工程师萨钦,拉胡尔,阿尔塔夫的名字

        [<Engineer: Sachin>, <Engineer: Rahul>, <Engineer: Altaf>]


def enginer(request):

    engineer=Engineer.objects.all()
    print engineer

3 个答案:

答案 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()返回元组列表,据我所知,这是仅检索标签的最简单,最简洁的方法。