diff options
| author | Tom Christie | 2012-10-30 11:03:03 +0000 |
|---|---|---|
| committer | Tom Christie | 2012-10-30 11:03:03 +0000 |
| commit | 0047a4602045ed0ef9efae9aa88143aa6a70d93d (patch) | |
| tree | 33f0bb55a446320afb524ab73a0724889c9a7775 /rest_framework/fields.py | |
| parent | 5670cb03bfa0ab62f90aed5fe3c62c5349d64264 (diff) | |
| download | django-rest-framework-0047a4602045ed0ef9efae9aa88143aa6a70d93d.tar.bz2 | |
Merge fixes for 'blank=True' fields. Fixes #324, Fixes #325
Thanks to @Roarster.
Diffstat (limited to 'rest_framework/fields.py')
| -rw-r--r-- | rest_framework/fields.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 7dab15fa..090a1e37 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -114,7 +114,7 @@ class WritableField(Field): def __init__(self, source=None, read_only=False, required=None, validators=[], error_messages=None, widget=None, - default=None): + default=None, blank=None): super(WritableField, self).__init__(source=source) @@ -133,6 +133,7 @@ class WritableField(Field): self.validators = self.default_validators + validators self.default = default or self.default + self.blank = blank # Widgets are ony used for HTML forms. widget = widget or self.widget @@ -467,6 +468,16 @@ class CharField(WritableField): if max_length is not None: self.validators.append(validators.MaxLengthValidator(max_length)) + def validate(self, value): + """ + Validates that the value is supplied (if required). + """ + # if empty string and allow blank + if self.blank and not value: + return + else: + super(CharField, self).validate(value) + def from_native(self, value): if isinstance(value, basestring) or value is None: return value |
