mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-01 11:00:13 +03:00
Merge abc9b98344
into db8d61196a
This commit is contained in:
commit
a72f37bb20
|
@ -546,6 +546,7 @@ class ModelSerializerOptions(SerializerOptions):
|
||||||
super(ModelSerializerOptions, self).__init__(meta)
|
super(ModelSerializerOptions, self).__init__(meta)
|
||||||
self.model = getattr(meta, 'model', None)
|
self.model = getattr(meta, 'model', None)
|
||||||
self.read_only_fields = getattr(meta, 'read_only_fields', ())
|
self.read_only_fields = getattr(meta, 'read_only_fields', ())
|
||||||
|
self.property_fields = getattr(meta, 'property_fields', ())
|
||||||
|
|
||||||
|
|
||||||
class ModelSerializer(Serializer):
|
class ModelSerializer(Serializer):
|
||||||
|
@ -693,6 +694,10 @@ class ModelSerializer(Serializer):
|
||||||
(self.__class__.__name__, field_name)
|
(self.__class__.__name__, field_name)
|
||||||
ret[field_name].read_only = True
|
ret[field_name].read_only = True
|
||||||
|
|
||||||
|
# For each of the `property_fields` construct a field
|
||||||
|
for property_name in self.opts.property_fields:
|
||||||
|
ret[property_name] = self.get_property_field(property_name)
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def get_pk_field(self, model_field):
|
def get_pk_field(self, model_field):
|
||||||
|
@ -733,6 +738,9 @@ class ModelSerializer(Serializer):
|
||||||
|
|
||||||
return PrimaryKeyRelatedField(**kwargs)
|
return PrimaryKeyRelatedField(**kwargs)
|
||||||
|
|
||||||
|
def get_property_field(self, model_property):
|
||||||
|
return CharField(read_only=True, source=model_property)
|
||||||
|
|
||||||
def get_field(self, model_field):
|
def get_field(self, model_field):
|
||||||
"""
|
"""
|
||||||
Creates a default instance of a basic non-relational field.
|
Creates a default instance of a basic non-relational field.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user