Schema overriding support

This commit is contained in:
Ignat Shining 2017-08-15 17:00:06 +03:00
parent bf4b3ff0d5
commit fc0d55000d
2 changed files with 7 additions and 1 deletions

View File

@ -309,7 +309,7 @@ class Field(object):
def __init__(self, read_only=False, write_only=False, def __init__(self, read_only=False, write_only=False,
required=None, default=empty, initial=empty, source=None, required=None, default=empty, initial=empty, source=None,
label=None, help_text=None, style=None, label=None, help_text=None, schema=None, style=None,
error_messages=None, validators=None, allow_null=False): error_messages=None, validators=None, allow_null=False):
self._creation_counter = Field._creation_counter self._creation_counter = Field._creation_counter
Field._creation_counter += 1 Field._creation_counter += 1
@ -342,6 +342,9 @@ class Field(object):
if validators is not None: if validators is not None:
self.validators = validators[:] self.validators = validators[:]
if schema is not None:
self.schema = schema
# These are set up by `.bind()` when the field is added to a serializer. # These are set up by `.bind()` when the field is added to a serializer.
self.field_name = None self.field_name = None
self.parent = None self.parent = None

View File

@ -27,6 +27,9 @@ header_regex = re.compile('^[a-zA-Z][0-9A-Za-z_]*:')
def field_to_schema(field): def field_to_schema(field):
if hasattr(field, 'schema'):
return field.schema
title = force_text(field.label) if field.label else '' title = force_text(field.label) if field.label else ''
description = force_text(field.help_text) if field.help_text else '' description = force_text(field.help_text) if field.help_text else ''