2010-02-23 46 views
1

Django的for循環似乎是刪除我的<img>標記的自閉合... ness(/>)。在模板中,我有這樣的代碼:Django Template for Loop Removing <img> Self-Closing

{% for item in item_list %} 
<li> 
    <a class="left" href="{{ item.url }}">{{ item.name }}</a> 
    <a class="right" href="{{ item.url }}"> 
     <img src="{{ item.icon.url }}" alt="{{ item.name }} Logo." /> 
    </a> 
</li> 
{% endfor %} 

它輸出這樣的:

<li> 
    <a class="left" href="/some-url/">This is an item</a> 
    <a class="right" href="/some-url/"> 
     <img src="/media/img/some-item.jpg" alt="This is an item Logo."> 
    </a> 
</li> 

正如你所看到的,<img>標籤不再是封閉的,因此,網頁不驗證。這不是一個很大的問題,因爲它仍然會在所有瀏覽器中正確呈現,但我想知道如何解決它。我試過在{% autoescape off %}...{% endautoescape %}中包裝整個循環,但是這並沒有改變任何東西。所有其他自封閉的<img>標籤以外的文檔 for循環仍然正常關閉。

+1

首先,輸出與輸入不匹配 - 「這是一個項目Logo」。 - 您的模板中沒有全站。其次,我無法重現這種行爲:( – 2010-02-23 01:23:12

+0

我修改了代碼來模糊目的,我錯過了那個錯字,但目的仍然是一樣的。此外,您使用的是哪個版本的Django?我使用1.2 b1 – Zack 2010-02-24 13:08:55

回答

1

Django的模板引擎無法進行此更改。你確定這是你查看源代碼時看到的代碼嗎?

+0

是的,同樣在W3C的驗證器上(這是我最初注意到的) – Zack 2010-02-24 13:05:56

+0

哦,哇,我真是個傻瓜,我只是意識到它是覆蓋基本模板中代碼的子模板。是正確的,因爲Django的模板引擎確實無法進行此更改。 – Zack 2010-04-28 21:14:17