我在django中显示模型中的特定列时遇到问题... 我在文档中读到了关于django的queryset功能。 我的问题是,在django中也可以像这个查询一样运行吗?
select name, age, address from person;
任何人都可以给我一个想法,我也会这样尝试
Mymodel.objects.get(name, age, address)
但名称,年龄和地址参数有错误......
感谢...
答案 0 :(得分:10)
如果您只想使用某些列,请使用only
:
Mymodel.objects.only('name', 'age', 'address')
如果您不希望某些列使用defer
:
Mymodel.objects.defer('some_big_field')
您仍然可以访问尚未查询的字段,但这会花费您一次模式数据库命中。
此外,您可以使用values
和values_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列表