2010-01-16 121 views
1

顯示我已在視圖中的以下(通過_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>] 

我知道這個結果的「unicode()」方法在「驅動器」和「內存」類中。

如何控制輸出/格式,使括號和類名不顯示,只有特定的字段。 ?

回答

4

drvmemry將是迭代,你可以通過它們與for標籤移動...

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

.name.size是什麼型號d代表性質。用任何你想要渲染的細節來填充它。

+0

太棒了。 d似乎是一個任意的規範。我對麼 ? – 2010-01-16 00:53:09

+0

Uhm,'enumerables' =>'iterable',n'est-ce pas? – 2010-01-16 02:57:02

+0

@michael - 是的,這只是一個你可以選擇的變量名稱。 – 2010-01-16 03:53:42