Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

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
  • Loading branch information...
commit e2740dd400e202d9e1f60413b8abac27f7d57933 1 parent 3cfa3cb
@malcolmt malcolmt authored
Showing with 10 additions and 4 deletions.
  1. +10 −4 docs/newforms.txt
View
14 docs/newforms.txt
@@ -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
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,
-you could capture the idea of a ``TextInput`` with a specific ``size`` attribute
-as a custom extension to the ``TextInput`` widget::
+For example, if you find that you are including a lot of comment fields on
+forms, you could capture the idea of a ``TextInput`` with a specific
+default ``size`` attribute as a custom extension to the ``TextInput`` widget::
class CommentWidget(forms.TextInput):
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)
+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::
class CommentForm(forms.Form):
Please sign in to comment.
Something went wrong with that request. Please try again.