Django 最快的查询方式从 table 获取行中的项目列表
Django the fastest way to do Query get list of items in row from table
在我的应用程序中,我需要进行快速查询,但我不知道哪个更快
materials = Material.objects.only('name')
或者在视图中进行过滤
materials = Material.objects.all()
然后使用 for 循环显示 'name' 行的项目列表
我认为首先更好还是有更好的方法?
它不能用 filter() 完成,因为它需要显示该行中的所有字段。
如果你只想要 name
s,你可以使用 .values_list(..)
:
materials = list(Material.objects<b>.values_list('name', flat=True)</b>)
这将避免将记录包装在 Material
个对象中。也就是说,除非某些列包含(非常)大量的数据,否则使用 .only(..)
不会显着加快该过程。此外,在软件设计方面,获取 Material
对象通常更好,因为这意味着您可以在 Material
模型中定义行为。
在我的应用程序中,我需要进行快速查询,但我不知道哪个更快
materials = Material.objects.only('name')
或者在视图中进行过滤
materials = Material.objects.all()
然后使用 for 循环显示 'name' 行的项目列表
我认为首先更好还是有更好的方法? 它不能用 filter() 完成,因为它需要显示该行中的所有字段。
如果你只想要 name
s,你可以使用 .values_list(..)
:
materials = list(Material.objects<b>.values_list('name', flat=True)</b>)
这将避免将记录包装在 Material
个对象中。也就是说,除非某些列包含(非常)大量的数据,否则使用 .only(..)
不会显着加快该过程。此外,在软件设计方面,获取 Material
对象通常更好,因为这意味着您可以在 Material
模型中定义行为。