2010-12-03 52 views
19

我有一個django模型,我使用ModelForm作爲表單顯示。大多數情況下,默認值對我來說工作得很好。添加一個屬性到<input>標籤爲Django的ModelForm字段

不過,我想我的html <input ...>標籤有一個附加屬性,也就是我想包括placeholder屬性,如下所示:

<input placeholder="{{field.label}}" ... /> 

什麼是這個屬性添加到最簡單的方法我的HTML?據我所知,我需要實現我自己的過濾器來輸出字段,但是當我想要做的事情是讓所有東西孤單但添加一個附加屬性時,這看起來像是矯枉過正。

回答

25

documentation

class AuthorForm(ModelForm): 
    class Meta: 
     model = Author 
     widgets = { 
      'name': TextInput(attrs={'placeholder': 'name'}), 
     } 

你總是可以創建自己的小部件,從的TextInput派生,包括佔位符屬性,並使用小工具字典只是字段映射到您的新的widget,而無需指定佔位符屬性的每個領域。

11

我個人更喜歡使用這種方法:

def __init__(self, *args, **kwargs): 
    super(MyForm, self).__init__(*args, **kwargs) 
    self.fields['email'].widget.attrs['placeholder'] = self.fields['email'].label or '[email protected]' 

,如果你沒有做__init__尚未它需要更多的代碼,但你並不需要指定的窗口小部件。

相關問題