控制模板中方法的显示

时间:2010-01-16 00:42:42

标签: django formatting templates methods

我在视图中有以下内容(通过_set的外键关系):

srvr = Server.objects.get(name=q)
return render_to_response('search_results.html',
    {'drv': srvr.drive_set.all(), 'memry': srvr.memory_set.all(), 'query': q})

结果模板包括:

{% if drv %}
<table>
    <tr>
        <td>{{ drv }}</td>
    </tr>
</table>
{% endif %}
{% if memry %}
     <li>{{ memry }}</li>
 {% endif %}

输出如下:

[<Drive: IBM IBM-500 1111111 500Gb SATA>, <Drive: IBM IBM-500 2222222 500Gb SATA]  
[<Memory: Samsung 512>, <Memory: Samsung 512>, <Memory: Samsung 512>]

我知道“Drive”和“Memory”类中“ unicode()”方法的结果。

如何控制输出/格式,以便不显示括号和类名,只显示特定字段。 ?

1 个答案:

答案 0 :(得分:4)

drvmemry将是可迭代的,您可以使用for标记移动它们。

{% if drv %}
<table>
    {% for d in drv %}
    <tr>
        <td>{{ d.name }}</td><td>{{ d.size }}</td>
    </tr>
    {% endfor %}
</table>
{% endif %}

.name.sized所代表的任何模型的属性。使用您想要呈现的实际存在的任何细节填写此内容。