'PrimaryKeySerializerField' introduced

This commit is contained in:
Jerin Peter George 2020-07-15 11:05:19 +05:30
parent 4b06e0a5a1
commit 23d225b372
2 changed files with 14 additions and 1 deletions

View File

@ -265,6 +265,18 @@ class PrimaryKeyRelatedField(RelatedField):
return value.pk return value.pk
class PrimaryKeySerializerField(PrimaryKeyRelatedField):
def __init__(self, serializer, **kwargs):
self.serializer = serializer
super().__init__(**kwargs)
def use_pk_only_optimization(self):
return False
def to_representation(self, instance):
return self.serializer(instance, context=self.context).data
class HyperlinkedRelatedField(RelatedField): class HyperlinkedRelatedField(RelatedField):
lookup_field = 'pk' lookup_field = 'pk'
view_name = None view_name = None

View File

@ -57,7 +57,8 @@ from rest_framework.fields import ( # NOQA # isort:skip
) )
from rest_framework.relations import ( # NOQA # isort:skip from rest_framework.relations import ( # NOQA # isort:skip
HyperlinkedIdentityField, HyperlinkedRelatedField, ManyRelatedField, HyperlinkedIdentityField, HyperlinkedRelatedField, ManyRelatedField,
PrimaryKeyRelatedField, RelatedField, SlugRelatedField, StringRelatedField, PrimaryKeyRelatedField, PrimaryKeySerializerField, RelatedField, SlugRelatedField,
StringRelatedField,
) )
# Non-field imports, but public API # Non-field imports, but public API