소스 검색

Fixed #28655 -- Added more examples for customizing widgets in a form.

Richard Oyudo 7 년 전
부모
커밋
8411e4a8fe
1개의 변경된 파일19개의 추가작업 그리고 0개의 파일을 삭제
  1. 19 0
      docs/ref/forms/widgets.txt

+ 19 - 0
docs/ref/forms/widgets.txt

@@ -157,6 +157,25 @@ this, you use the :attr:`Widget.attrs` argument when creating the widget::
         url = forms.URLField()
         comment = forms.CharField(widget=forms.TextInput(attrs={'size': '40'}))
 
+You can also modify a widget in the form definition::
+
+    class CommentForm(forms.Form):
+        name = forms.CharField()
+        url = forms.URLField()
+        comment = forms.CharField()
+
+        name.widget.attrs.update({'class': 'special'})
+        comment.widget.attrs.update(size='40')
+
+Or if the field isn't declared directly on the form (such as model form fields),
+you can use the :attr:`Form.fields` attribute::
+
+    class CommentForm(forms.ModelForm):
+        def __init__(self, *args, **kwargs):
+            super().__init__(*args, **kwargs)
+            self.fields['name'].widget.attrs.update({'class': 'special'})
+            self.fields['comment'].widget.attrs.update(size='40')
+
 Django will then include the extra attributes in the rendered output:
 
     >>> f = CommentForm(auto_id=False)