From 2f6788bf36061e0eecf61eb4c275b0431709c092 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste <bleme@pm.me> Date: Mon, 4 Feb 2019 16:36:52 +0100 Subject: [PATCH] update: manage auto_author on serializer.is_valid --- djangoldp/serializers.py | 10 ++++++++-- djangoldp/tests/models.py | 4 +++- djangoldp/tests/tests.py | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/djangoldp/serializers.py b/djangoldp/serializers.py index c7489448..8b3d60d6 100644 --- a/djangoldp/serializers.py +++ b/djangoldp/serializers.py @@ -2,6 +2,7 @@ from django.core.exceptions import ImproperlyConfigured from django.core.urlresolvers import get_resolver from django.utils.datastructures import MultiValueDictKeyError from guardian.shortcuts import get_perms +from rest_framework.fields import empty from rest_framework.relations import HyperlinkedRelatedField, ManyRelatedField, MANY_RELATION_KWARGS from rest_framework.serializers import HyperlinkedModelSerializer, ListSerializer from rest_framework.utils.field_mapping import get_nested_relation_kwargs @@ -38,7 +39,6 @@ class ContainerSerializer(LDListMixin, ListSerializer): return ReturnDict(super(ListSerializer, self).data, serializer=self) def create(self, validated_data): - print(validated_data) return super().create(validated_data) def to_internal_value(self, data): @@ -112,8 +112,14 @@ class LDPSerializer(HyperlinkedModelSerializer): def get_default_field_names(self, declared_fields, model_info): try: fields = list(self.Meta.model._meta.serializer_fields) - except: + 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 return fields + list(getattr(self.Meta, 'extra_fields', [])) def to_representation(self, obj): diff --git a/djangoldp/tests/models.py b/djangoldp/tests/models.py index 7a0760a4..d8e0e76b 100644 --- a/djangoldp/tests/models.py +++ b/djangoldp/tests/models.py @@ -1,3 +1,4 @@ +from django.conf import settings from django.db import models @@ -7,4 +8,5 @@ class Skill(models.Model): class JobOffer(models.Model): title = models.CharField(max_length=255, blank=True, null=True) - skills = models.ManyToManyField(Skill, blank=True) \ No newline at end of file + skills = models.ManyToManyField(Skill, blank=True) + diff --git a/djangoldp/tests/tests.py b/djangoldp/tests/tests.py index e101f69a..a8f6f6cd 100644 --- a/djangoldp/tests/tests.py +++ b/djangoldp/tests/tests.py @@ -17,7 +17,7 @@ class Serializer(TestCase): ]} } - meta_args = {'model': JobOffer, 'depth': 2, 'fields': ("@id", "title", "skills")} + meta_args = {'model': JobOffer, 'depth': 1, 'fields': ("@id", "title", "skills")} meta_class = type('Meta', (), meta_args) serializer_class = type(LDPSerializer)('JobOfferSerializer', (LDPSerializer,), {'Meta': meta_class}) -- GitLab