From 0ecd97c9ee305b4b951a9b48907044772c641b87 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste <bleme@pm.me> Date: Mon, 4 Feb 2019 16:53:51 +0100 Subject: [PATCH] fix: empty many_to_many should not failed validation --- djangoldp/serializers.py | 1 + djangoldp/tests/tests.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/djangoldp/serializers.py b/djangoldp/serializers.py index 8b3d60d6..530cc1f8 100644 --- a/djangoldp/serializers.py +++ b/djangoldp/serializers.py @@ -149,6 +149,7 @@ class LDPSerializer(HyperlinkedModelSerializer): kwargs = get_nested_relation_kwargs(relation_info) kwargs['read_only'] = False + kwargs['required'] = False return NestedLDPSerializer, kwargs @classmethod diff --git a/djangoldp/tests/tests.py b/djangoldp/tests/tests.py index a8f6f6cd..647b26c3 100644 --- a/djangoldp/tests/tests.py +++ b/djangoldp/tests/tests.py @@ -27,3 +27,19 @@ class Serializer(TestCase): self.assertEquals(result.title, "job test") self.assertIs(result.skills.count(), 2) + + def test_save_without_nested_fields(self): + skill1 = Skill.objects.create(title="skill1") + skill2 = Skill.objects.create(title="skill2") + job = {"title": "job test"} + + 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}) + serializer = serializer_class(data=job) + serializer.is_valid() + result = serializer.save() + + self.assertEquals(result.title, "job test") + self.assertIs(result.skills.count(), 0) -- GitLab