Commit 6e622d64 by Yuri Prezument

CharField - add allow_null argument

parent e88e3c6a
...@@ -157,23 +157,24 @@ Corresponds to `django.db.models.fields.BooleanField`. ...@@ -157,23 +157,24 @@ Corresponds to `django.db.models.fields.BooleanField`.
## CharField ## CharField
A text representation, optionally validates the text to be shorter than `max_length` and longer than `min_length`. A text representation, optionally validates the text to be shorter than `max_length` and longer than `min_length`.
If `allow_none` is `False` (default), `None` values will be converted to an empty string.
Corresponds to `django.db.models.fields.CharField` Corresponds to `django.db.models.fields.CharField`
or `django.db.models.fields.TextField`. or `django.db.models.fields.TextField`.
**Signature:** `CharField(max_length=None, min_length=None)` **Signature:** `CharField(max_length=None, min_length=None, allow_none=False)`
## URLField ## URLField
Corresponds to `django.db.models.fields.URLField`. Uses Django's `django.core.validators.URLValidator` for validation. Corresponds to `django.db.models.fields.URLField`. Uses Django's `django.core.validators.URLValidator` for validation.
**Signature:** `CharField(max_length=200, min_length=None)` **Signature:** `CharField(max_length=200, min_length=None, allow_none=False)`
## SlugField ## SlugField
Corresponds to `django.db.models.fields.SlugField`. Corresponds to `django.db.models.fields.SlugField`.
**Signature:** `CharField(max_length=50, min_length=None)` **Signature:** `CharField(max_length=50, min_length=None, allow_none=False)`
## ChoiceField ## ChoiceField
......
...@@ -443,8 +443,9 @@ class CharField(WritableField): ...@@ -443,8 +443,9 @@ class CharField(WritableField):
type_label = 'string' type_label = 'string'
form_field_class = forms.CharField form_field_class = forms.CharField
def __init__(self, max_length=None, min_length=None, *args, **kwargs): def __init__(self, max_length=None, min_length=None, allow_none=False, *args, **kwargs):
self.max_length, self.min_length = max_length, min_length self.max_length, self.min_length = max_length, min_length
self.allow_none = allow_none
super(CharField, self).__init__(*args, **kwargs) super(CharField, self).__init__(*args, **kwargs)
if min_length is not None: if min_length is not None:
self.validators.append(validators.MinLengthValidator(min_length)) self.validators.append(validators.MinLengthValidator(min_length))
...@@ -452,7 +453,7 @@ class CharField(WritableField): ...@@ -452,7 +453,7 @@ class CharField(WritableField):
self.validators.append(validators.MaxLengthValidator(max_length)) self.validators.append(validators.MaxLengthValidator(max_length))
def from_native(self, value): def from_native(self, value):
if value is None: if value is None and not self.allow_none:
return '' return ''
if isinstance(value, six.string_types): if isinstance(value, six.string_types):
return value return value
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment