diff --git a/djangoldp/serializers.py b/djangoldp/serializers.py index 5c167c0dc0e35f9e69121de2add1b8823e08bf0b..0137671a69b6b81f7441973f879848d75f603059 100644 --- a/djangoldp/serializers.py +++ b/djangoldp/serializers.py @@ -17,7 +17,6 @@ from rest_framework.utils import model_meta from rest_framework.utils.field_mapping import get_nested_relation_kwargs from rest_framework.utils.serializer_helpers import ReturnDict -from djangoldp import permissions from djangoldp.fields import LDPUrlField, IdURLField from djangoldp.models import Model @@ -196,12 +195,13 @@ class LDPSerializer(HyperlinkedModelSerializer): fields = list(self.Meta.model._meta.serializer_fields) except AttributeError: fields = super().get_default_field_names(declared_fields, model_info) - try: - fields.remove(self.Meta.model._meta.auto_author) - except ValueError: - pass - except AttributeError: - pass + if 'request' in self._context and not self._context['request']._request.method == 'GET': + try: + fields.remove(self.Meta.model._meta.auto_author) + except ValueError: + pass + except AttributeError: + pass return fields + list(getattr(self.Meta, 'extra_fields', [])) def get_permissions(self, obj): @@ -221,9 +221,9 @@ class LDPSerializer(HyperlinkedModelSerializer): data['@type'] = obj._meta.rdf_type if hasattr(obj._meta, 'rdf_context'): data['@context'] = obj._meta.rdf_context - + data['permissions'] = self.get_permissions(obj) - + return data def build_field(self, field_name, info, model_class, nested_depth): @@ -387,7 +387,8 @@ class LDPSerializer(HyperlinkedModelSerializer): info = model_meta.get_field_info(model_class) many_to_many = {} for field_name, relation_info in info.relations.items(): - if relation_info.to_many and relation_info.reverse and not (field_name in validated_data) and not field_name is None: + if relation_info.to_many and relation_info.reverse and not ( + field_name in validated_data) and not field_name is None: rel = getattr(instance._meta.model, field_name).rel if rel.name in validated_data: related = validated_data[rel.name]