This commit is contained in:
Tony Thomas 2017-10-23 07:52:34 +00:00 committed by GitHub
commit 90fbc9179e
2 changed files with 15 additions and 0 deletions

View File

@ -1844,3 +1844,17 @@ class ModelField(Field):
if is_protected_type(value):
return value
return self.model_field.value_to_string(obj)
class ExternalModelField(ModelField):
"""
Create a modelfield of an extenral class by accepting the class name as an
argument.
This can help a lot while creating complex nested serializers
"""
def __init__(self, model_name, model_field, **kwargs):
super(ExternalModelField, self).__init__(
model_field=model_name()._meta.get_field(model_field),
**kwargs
)

View File

@ -57,6 +57,7 @@ from rest_framework.fields import ( # NOQA # isort:skip
HiddenField, IPAddressField, ImageField, IntegerField, JSONField, ListField,
ModelField, MultipleChoiceField, NullBooleanField, ReadOnlyField, RegexField,
SerializerMethodField, SlugField, TimeField, URLField, UUIDField,
ExternalModelField
)
from rest_framework.relations import ( # NOQA # isort:skip
HyperlinkedIdentityField, HyperlinkedRelatedField, ManyRelatedField,