我有一個調查應用程序,可以創建動態大小的表單。我在問題被修正的地方使用公式「question_id_part」,id是被問到的問題的id,部分是三部分之一。Django模板標籤以獲取特定的表單域
在我的模板中,我需要能夠按類別對它們進行分組,所以我循環調查中的類別,獲取該類別中的所有問題,然後使用模板標籤來獲取表單字段。
{% load my_tags %}
...
{% for category in survey.category_set.all %}
<h3>{{category}}</h3>
{% for question in category.factor_set.all %}
{% get_field_for_question_part question.id form "type" %}
{% endfor %}
{% endfor %}
...
然後,我有一個相應的模板標籤,看起來像這樣:
@register.simple_tag
def get_field_for_question_part(question_id, form, part):
field_name = "question_%s_%s" % (question_id, part)
field = form.fields[field_name]
return BoundField(form, field, field_name)
我的問題是這樣的: 通過明確進口的BoundField我的模板標籤知道太多關於形式的內部是如何工作的,因此是易於對未來形式的非公開行爲進行改變。因此,在我看來,BoundField應該以某種方式作爲場上的方法來訪問 - 但對於我的生活,我無法弄清楚這種方法會是什麼。我錯過了明顯的東西嗎?
輕度的意識模糊,你是動態創建的字段或只是想在窗體上訪問現有的場? – 2011-05-23 21:34:31
只是試圖訪問現有的字段。 – Ted 2011-05-23 21:36:48
好問題,我一直在努力,直到我降落在這裏。在模板中,我們可以簡單地執行'form.field_name',但如果我們將相同的'form'對象傳遞給模板標籤,則它不一樣。 – Anupam 2017-10-11 09:55:55