summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2014-03-04 14:12:13 +0000
committerClaude Paroz <claude@2xlibre.net>2014-03-05 20:09:28 +0100
commit95c74b9d699c29fe808684774548e2864d64665a (patch)
tree8edba19c8beba0a514b65f2f28a2c8c02e47b91f /django
parentac699cdc174a825e6b78c6f3c6e967bc961413c8 (diff)
Fixed #22206 -- Passed models.TextField.max_length to forms.CharField.maxlength
Diffstat (limited to 'django')
-rw-r--r--django/db/models/fields/__init__.py5
-rw-r--r--django/forms/fields.py2
2 files changed, 5 insertions, 2 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 25ac74caee..5e94e78c58 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -1850,7 +1850,10 @@ class TextField(Field):
return smart_text(value)
def formfield(self, **kwargs):
- defaults = {'widget': forms.Textarea}
+ # Passing max_length to forms.CharField means that the value's length
+ # will be validated twice. This is considered acceptable since we want
+ # the value in the form field (to pass into widget for example).
+ defaults = {'max_length': self.max_length, 'widget': forms.Textarea}
defaults.update(kwargs)
return super(TextField, self).formfield(**defaults)
diff --git a/django/forms/fields.py b/django/forms/fields.py
index 8b5fd2c55e..1866bc1786 100644
--- a/django/forms/fields.py
+++ b/django/forms/fields.py
@@ -223,7 +223,7 @@ class CharField(Field):
def widget_attrs(self, widget):
attrs = super(CharField, self).widget_attrs(widget)
- if self.max_length is not None and isinstance(widget, TextInput):
+ if self.max_length is not None:
# The HTML attribute is maxlength, not max_length.
attrs.update({'maxlength': str(self.max_length)})
return attrs