diff --git a/djangoldp/serializers.py b/djangoldp/serializers.py index 8b3d60d63c7ad52d5e43663cd70c1c64775e2438..530cc1f816fa889b484441a301e346290afd6edb 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 a8f6f6cd604bf1620e3282a80ce1bcff2e2cc367..647b26c367aa8bdcdfce3f581a9f937f1d15c9da 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)