mirror of
https://github.com/django/django.git
synced 2025-07-22 18:49:25 +00:00
[2.0.x] Fixed #28655 -- Added more examples for customizing widgets in a form.
Backport of 8411e4a8fe98ebac4327ee43446a25873703a5e8 from master
This commit is contained in:
parent
e537bf86f0
commit
564847fc1f
@ -157,6 +157,25 @@ this, you use the :attr:`Widget.attrs` argument when creating the widget::
|
|||||||
url = forms.URLField()
|
url = forms.URLField()
|
||||||
comment = forms.CharField(widget=forms.TextInput(attrs={'size': '40'}))
|
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:
|
Django will then include the extra attributes in the rendered output:
|
||||||
|
|
||||||
>>> f = CommentForm(auto_id=False)
|
>>> f = CommentForm(auto_id=False)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user