2011-08-29 61 views
14

我有一個Django窗體是頁面的一部分。可以說,我有一個字段:如何在django表單中設置自定義HTML屬性?

search_input = forms.CharField(_(u'Search word'), required=False) 

我可以通過{{ form.search_input }}只能在模板訪問它。如何設置自定義HTML attrs(如名稱和值)?我想找到靈活的解決方案,這將允許我將所有需要的自定義屬性添加到所有類型的字段。

我發現https://docs.djangoproject.com/en/dev/ref/forms/widgets/#widget

但使用ATTRS給我(如果與CharField使用):

__init__() got an unexpected keyword argument 'attrs' 

回答

17

您可以更改的CharField小部件來實現你正在尋找的效果。

search_input = forms.CharField(_(u'Search word'), required=False) 
search_input.widget = forms.TextInput(attrs={'size': 10, 'title': 'Search',}) 
8

你也可以試試這個:

search_input = forms.CharField(
    _(u'Search word'), 
    required=False, 
    widget=forms.TextInput(attrs={'size': 10, 'title': 'Search',}) 
) 

這在題爲Styling widget instances的部分記錄。

2

還有使用唯一的模板解決方案一個過濾器。我推薦django-widget-tweaks

{% load widget_tweaks %} 

{{ form.email|attr:'required:true' }} 
相關問題