2

这是我的模型的样子:

http://i.imgur.com/fFBqq.png

我正在尝试填写一张满是磁盘的表格,每个磁盘都有一个序列号和型号。我将假设我会为“某事”中的磁盘执行 {%} 之类的操作,但我不太确定那会是什么。

这就是我所希望的:

<table>
  <thead>
    <tr>
    <th>Serial Number</th>
    <th>Model Number</th>
    </tr>
  </thead>
<tbody>

{% for disks in "something" %}
    <tr>
    <td>{{ disk.serial }}</td>  
    <td>{{ disk.model }}</td>
    </tr>
{% endfor %}
4

2 回答 2

4

模板只是您问题的一部分。这实际上是不太复杂的方面,因为您所做的只是将一个上下文(字典)传递给它以供它访问。模板之前的步骤是组织数据的视图。让我们从那个开始......

看法

收集数据的函数(视图)需要构建一个包含“磁盘”对象的上下文,这可能是数据库模型查询的结果。为简单起见,假设您这样做了:

disks = Disk.objects.all()

使用您的磁盘查询集,您现在可以在上下文中将其交付给您的模板。

context = {"disks": disks}
return render_to_response('my_template.html', context)

上下文现在将传递给您的模板。

模板

只需在您的上下文中引用对象:

{% for disk in disks %}
    <tr>
    <td>{{ disk.serial }}</td>  
    <td>{{ disk.model }}</td>
    </tr>
{% endfor %}
于 2012-04-29T15:29:54.070 回答
1

@jdi 是对的,但由于这是 Web 开发中非常常见的事情 - 有一个通用视图

在你的urls.py

from django.conf.urls import patterns, url, include
from django.views.generic import ListView
from myapp.models import Disk

urlpatterns = patterns('',
    (r'^disk_list/$', ListView.as_view(
        model=Disk,
        template_name='disk_list.html'
    )),
)

创建一个名为 的文件disk_list.html,即 中列出的任何目录TEMPLATE_DIRS,并在其中添加:

<table>
  <thead>
    <tr>
    <th>Serial Number</th>
    <th>Model Number</th>
    </tr>
  </thead>
<tbody>

{% for disk in object_list %}
    <tr>
    <td>{{ disk.serial }}</td>  
    <td>{{ disk.model }}</td>
    </tr>
{% endfor %}

最后,导航到http://localhost:8000/disk_list/

于 2012-04-29T17:27:13.600 回答