mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-22 22:19:52 +03:00
clean up 'pk' getattr,
add the ability to specify which model fields are read_only in bulk
This commit is contained in:
parent
10ed127df1
commit
dc3ecb85bb
|
@ -73,6 +73,7 @@ class SerializerOptions(object):
|
|||
self.depth = getattr(meta, 'depth', 0)
|
||||
self.fields = getattr(meta, 'fields', ())
|
||||
self.exclude = getattr(meta, 'exclude', ())
|
||||
self.read_only_fields = getattr(meta, 'read_only_fields', ())
|
||||
|
||||
|
||||
class BaseSerializer(Field):
|
||||
|
@ -124,14 +125,14 @@ class BaseSerializer(Field):
|
|||
# Add in the default fields
|
||||
fields = self.default_fields(serialize, obj, data, nested)
|
||||
for key, val in fields.items():
|
||||
if key in self.opts.read_only_fields:
|
||||
val.read_only = True
|
||||
|
||||
if key not in ret:
|
||||
ret[key] = val
|
||||
try:
|
||||
# Test if field was marked as pk_field
|
||||
if getattr(val, 'is_pk_field'):
|
||||
pk_field = key
|
||||
except AttributeError:
|
||||
pass
|
||||
if getattr(val, 'is_pk_field', None):
|
||||
pk_field = key
|
||||
|
||||
# If 'fields' is specified, use those fields, in that order.
|
||||
if self.opts.fields:
|
||||
|
|
Loading…
Reference in New Issue
Block a user