我剛剛瞭解到:如何添加其他的類Django的表單字段
Form.error_css_class
Form.required_css_class
文件:所以通過定義形式 'error_css_class' 和 'required_css_class' https://docs.djangoproject.com/en/dev/ref/forms/api/#django.forms.Form.error_css_class
class MyForm(forms.Form):
error_css_class = 'error'
required_css_class = 'required'
name = forms.CharField(...)
我可以做的:
<div class="field-wrapper {{ form.name.css_classes }}">
...
</div>
這將輸出:
<div class="field-wrapper required">
...
</div>
不過,我想其他類添加到字段,e.g我想補充「文本名稱」的CSS類的「姓名」字段。閱讀文檔,我認爲它是可能的。
https://docs.djangoproject.com/en/dev/ref/forms/api/#django.forms.BoundField.css_classes
看完上面我試圖做
self.fields['name'].css_classes('name text')
這是行不通的。我得到
'CharField' object has no attribute 'css_classes'
我也試過
name = forms.CharField(css_classes='name text')
類型錯誤
__init__() got an unexpected keyword argument 'css_classes'
我知道我可以添加額外的ATTR到字段部件
self.fields['name'].widget.attrs['class'] = 'name text'
但我想添加CSS類到字段包裝器。
我可以編寫一個自定義模板標籤來檢查字段名稱/類型並返回相應的CSS類...但如果有內置的東西..我很想保持我的模板清潔:-)。
也硬編碼每個字段的css類不是一個選項..因爲表單字段是動態的。
任何幫助將不勝感激。
大,避免硬編碼將屬性添加到CustomBoundField類:並在css_classes中調用self.extra_classes – aiho