mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 12:30:11 +03:00
Merge ebc874f912
into f5e98efcf2
This commit is contained in:
commit
90fbc9179e
|
@ -1844,3 +1844,17 @@ class ModelField(Field):
|
||||||
if is_protected_type(value):
|
if is_protected_type(value):
|
||||||
return value
|
return value
|
||||||
return self.model_field.value_to_string(obj)
|
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
|
||||||
|
)
|
||||||
|
|
|
@ -57,6 +57,7 @@ from rest_framework.fields import ( # NOQA # isort:skip
|
||||||
HiddenField, IPAddressField, ImageField, IntegerField, JSONField, ListField,
|
HiddenField, IPAddressField, ImageField, IntegerField, JSONField, ListField,
|
||||||
ModelField, MultipleChoiceField, NullBooleanField, ReadOnlyField, RegexField,
|
ModelField, MultipleChoiceField, NullBooleanField, ReadOnlyField, RegexField,
|
||||||
SerializerMethodField, SlugField, TimeField, URLField, UUIDField,
|
SerializerMethodField, SlugField, TimeField, URLField, UUIDField,
|
||||||
|
ExternalModelField
|
||||||
)
|
)
|
||||||
from rest_framework.relations import ( # NOQA # isort:skip
|
from rest_framework.relations import ( # NOQA # isort:skip
|
||||||
HyperlinkedIdentityField, HyperlinkedRelatedField, ManyRelatedField,
|
HyperlinkedIdentityField, HyperlinkedRelatedField, ManyRelatedField,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user