mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-10-31 07:57:55 +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