如何从数据库中仅获取选定列并在Django中格式化?

如何从数据库中仅获取选定列并在Django中格式化?,django,templates,Django,Templates,我只想显示数据库中选定的列,如: Select coloum1, coloum2, coloum3 from Table1; 我只想显示这三列。使用Entry.objects.all()不允许我这样做。现在,在检索每个列后,我得到以下格式的数据: ok.py 172.16.0.161 January 07, 2013, 11:36AM January 07, 2013, 11:36AM 0 bytes 我想在不同的列中显示每个元素,如: name host

我只想显示数据库中选定的列,如:

Select coloum1, coloum2, coloum3 from Table1;
我只想显示这三列。使用
Entry.objects.all()
不允许我这样做。现在,在检索每个列后,我得到以下格式的数据:

ok.py 172.16.0.161 January 07, 2013, 11:36AM January 07, 2013, 11:36AM 0 bytes
我想在不同的列中显示每个元素,如:

name    host               Date                          Date
ok.py   172.16.0.161       11:36AM January 07, 2013      2013, 11:36AM 0 bytes
我尝试在模板中使用simple for loop:

{% for i in query %}
{{ i }}
{% endfor %}
这将检索所有元素,如:

ok.py 172.16.0.161 January 07, 2013, 11:36AM January 07, 2013, 11:36AM 0 bytes
hello.py 172.16.0.161 January 07, 2013, 11:36AM January 07, 2013, 11:36AM 0 bytes
如何在不同的列中向用户显示它们

如果query是queryset,那么变量i是一个对象

您可以像往常一样使用object.attribute语法(即i.name、i.host等)获取对象属性

使用从循环中提取的属性生成常规html

您可以执行原始sql查询,如以下示例所示: first\u person=person.objects.raw('从myapp\u person'中选择名称、地址') 对一些模范人物来说

您肯定应该签出django文档。

您可以使用它。

您可以使用
Entry.objects.values('field1','field2','field3')
,它将返回一个列表字典,即
[{'field1':value1,'field2':value2,'field3':value3},…]

或者,您也可以使用
Entry.objects.values_list('field1','field2','field3')
,它将返回一个值元组列表,即
[(value1,value2,value3),…]
。如果您试图从数据库中仅获取一个字段,则这可以工作
Entry.objects.values\u list('field1',flat=True)
flat参数将返回一个值列表,而不是值元组列表,即[value1a,value1b,value1c]