0

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

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

我尝试在模板中使用简单的 for 循环:

{% 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

如何在不同的列中向用户展示它们?

4

3 回答 3

1

你可以用values_list这个。

于 2013-01-07T07:07:28.870 回答
0

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

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

于 2013-01-07T08:17:30.503 回答
0

如果query是一个查询集,那么变量i是一个对象。

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

使用您从循环中拉出的属性制作一个常规的 html。

您可以执行原始 sql 查询,如下例所示: first_person = Person.objects.raw('SELECT name, address from myapp_person') for some model Person

您绝对应该查看 django 文档。 https://docs.djangoproject.com/en/1.4/

于 2013-01-07T06:16:35.750 回答