如何在django中查询多列

时间:2011-12-01 10:10:29

标签: python sql django

我在django中显示模型中的特定列时遇到问题... 我在文档中读到了关于django的queryset功能。 我的问题是,在django中也可以像这个查询一样运行吗?

select name, age, address from person;

任何人都可以给我一个想法,我也会这样尝试

Mymodel.objects.get(name, age, address)

但名称,年龄和地址参数有错误......

感谢...

2 个答案:

答案 0 :(得分:10)

如果您只想使用某些列,请使用only

Mymodel.objects.only('name', 'age', 'address')

如果您不希望某些列使用defer

Mymodel.objects.defer('some_big_field')

您仍然可以访问尚未查询的字段,但这会花费您一次模式数据库命中。

此外,您可以使用valuesvalues_list方法,但不是模型实例,而是分别返回dicts列表和列表列表。

答案 1 :(得分:4)

有几种不同的方式。 django通常将数据包装在模型实例中,这是orm的一部分。你处理对象和django处理数据库。所以

for person in MyMydel.objects.all():
    do_something_with(person.name)

话虽如此,如果您只想要某些属性,例如为了提高性能,您可以使用values

MyMode.objects.values('name', 'age', 'address')

返回带有这些值的dicts列表