mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-30 18:09:59 +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)
|
||||
self.model = getattr(meta, 'model', None)
|
||||
self.read_only_fields = getattr(meta, 'read_only_fields', ())
|
||||
self.property_fields = getattr(meta, 'property_fields', ())
|
||||
|
||||
|
||||
class ModelSerializer(Serializer):
|
||||
|
@ -693,6 +694,10 @@ class ModelSerializer(Serializer):
|
|||
(self.__class__.__name__, field_name)
|
||||
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
|
||||
|
||||
def get_pk_field(self, model_field):
|
||||
|
@ -733,6 +738,9 @@ class ModelSerializer(Serializer):
|
|||
|
||||
return PrimaryKeyRelatedField(**kwargs)
|
||||
|
||||
def get_property_field(self, model_property):
|
||||
return CharField(read_only=True, source=model_property)
|
||||
|
||||
def get_field(self, model_field):
|
||||
"""
|
||||
Creates a default instance of a basic non-relational field.
|
||||
|
|
Loading…
Reference in New Issue
Block a user