2013-08-16 21 views
0

我正在查看名爲crispy forms的包我想知道是否可以更改模板中的html名稱?更改模板中的表單html名稱

{{ form.username|changename }} 

規則:

我不想改變原有的形式或視圖(全部),我只能訪問模板。

+0

如果你改變字段的id,當你發佈信息時它不會再匹配。如果你想改變'label',你可以在你的form.py文件中做到這一點。所以,請更具體地說,你的名字是什麼?另外,你正在改變一個字段,而不是表單名稱。 –

+0

@Samuele Mattiuzzo對不起,它的標籤我想改變,但是正如我所說的,我不想在form.py中改變它,因爲它也是一個包裝。 – GrantU

回答

1

既然你改變的標籤,我建議你做模板十歲上下,不使用templatetag或過濾器:

<label for="id_username">Your label name here:</label> 
{{ form.username }} 

或者,如果你無法抗拒,你必須申請一個篩選您field.label屬性:

{{ form.username.label|my_custom_filter }} 

一個簡單的過濾器可以是:

@register.filter(name='my_custom_filter') 
def my_custom_filter(value): 
    # here value is the value of your label 
    # process it as you please then return the new value 
    if value == 'changeme': 
     return 'changed label' 
    return value 

ŧ他只是一個例子,告訴你模板過濾器是如何工作的,然後你可以詳細說明它,並更改名稱,邏輯等等。

1

這可能是過度簡化它,但不只是原始輸出呢?

<label for="">what ever you want</label> 
<input type="text" name="{{ form.username.html_name }}" id="{{ form.username.auto_id }}"> 

我還是會這麼做的form.py自己,但如果你已經是有那麼它不需要任何幻想這裏工作的模板。