2012-08-09 106 views
1

我真的很喜歡在django中使用模型來加速用戶界面的能力。 IE:使用模板呈現django小部件?

<html> 
    ... 
    {{ myform }} 
    ... 
</html> 

但是,我需要創建的HTML輸出與默認創建的輸出不匹配。我無法更改我需要的HTML輸出,但我想更改表單的輸出。

我知道有幾種方法可以這樣做。遍歷字段並單獨顯示每個字段(即,循環顯示{{ myform.field }})工作正常,但它不如僅僅做{{ myform }}好。小部件似乎是一個好主意,但在查看文檔&的一些示例後,我不太確定 - 我只是想更改html輸出,而不是功能。如果有一些方法可能基於模板輸出字段,那就太好了。

任何想法?

回答

3

我通常使用include標籤。我創建了一個自定義模板(form_snippet.html)。

對於參數的緣故,讓我們說form_snippet.html只是打印形式:

<!-- Form snippet --> 
{{ form }} 

然後,當你想使用的表單模板在其他模板你只需要使用:

{% include 'form_snippet.html' with form=myform %} 

您可以簡單地遍歷字段並添加自定義標記。

+0

好主意,謝謝。爲了補充這一點,我需要區分不同的字段類型 - 這:http://stackoverflow.com/questions/1809874/get-type-of-django-form-widget-from-within-template/1809982很好地工作我。 – guywhoneedsahand 2012-08-09 02:53:51

+1

優秀!關於死簡單的模板過濾器的東西讓我微笑。 – 2012-08-09 02:55:37