mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-01-23 15:54:16 +03:00
CharField - add allow_null argument
This commit is contained in:
parent
e88e3c6ae1
commit
6e622d644c
|
@ -157,23 +157,24 @@ Corresponds to `django.db.models.fields.BooleanField`.
|
|||
## CharField
|
||||
|
||||
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`
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
|
|
|
@ -443,8 +443,9 @@ class CharField(WritableField):
|
|||
type_label = 'string'
|
||||
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.allow_none = allow_none
|
||||
super(CharField, self).__init__(*args, **kwargs)
|
||||
if min_length is not None:
|
||||
self.validators.append(validators.MinLengthValidator(min_length))
|
||||
|
@ -452,7 +453,7 @@ class CharField(WritableField):
|
|||
self.validators.append(validators.MaxLengthValidator(max_length))
|
||||
|
||||
def from_native(self, value):
|
||||
if value is None:
|
||||
if value is None and not self.allow_none:
|
||||
return ''
|
||||
if isinstance(value, six.string_types):
|
||||
return value
|
||||
|
|
Loading…
Reference in New Issue
Block a user