Fixed #7630 -- Slight tweak to the custom form widget exampleto avoid any
confusion. Based on a patch from Christian Tanzer. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7845 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
3cfa3cbd07
commit
e2740dd400
|
@ -1817,15 +1817,21 @@ reuse certain sets of widget attributes over and over again. Rather than
|
||||||
repeat these attribute definitions every time you need them, Django allows
|
repeat these attribute definitions every time you need them, Django allows
|
||||||
you to capture those definitions as a custom widget.
|
you to capture those definitions as a custom widget.
|
||||||
|
|
||||||
For example, if you find that you are including a lot of comment fields on forms,
|
For example, if you find that you are including a lot of comment fields on
|
||||||
you could capture the idea of a ``TextInput`` with a specific ``size`` attribute
|
forms, you could capture the idea of a ``TextInput`` with a specific
|
||||||
as a custom extension to the ``TextInput`` widget::
|
default ``size`` attribute as a custom extension to the ``TextInput`` widget::
|
||||||
|
|
||||||
class CommentWidget(forms.TextInput):
|
class CommentWidget(forms.TextInput):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
kwargs.setdefault('attrs',{}).update({'size': '40'})
|
attrs = kwargs.setdefault('attrs',{})
|
||||||
|
if 'size' not in attrs:
|
||||||
|
attrs['size'] = 40
|
||||||
super(CommentWidget, self).__init__(*args, **kwargs)
|
super(CommentWidget, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
We allow the ``size`` attribute to be overridden by the user, but, by default,
|
||||||
|
this widget will behave as if ``attrs={'size': 40}`` was always passed into the
|
||||||
|
constructor.
|
||||||
|
|
||||||
Then you can use this widget in your forms::
|
Then you can use this widget in your forms::
|
||||||
|
|
||||||
class CommentForm(forms.Form):
|
class CommentForm(forms.Form):
|
||||||
|
|
Loading…
Reference in New Issue