mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-02 20:54:42 +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
|
## 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):
|
||||||
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):
|
||||||
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
|
||||||
|
|
Loading…
Reference in New Issue
Block a user