Avoid marking read_only fields as required (#133)

* Avoid marking read_only fields as required

Read only properties cannot be marked as required by a schema.
openapi3
werwty 2018-05-30 14:56:53 -04:00 committed by Cristi Vîjdea
parent a4a11ad1ab
commit 408b31fc4f
3 changed files with 6 additions and 4 deletions

View File

@ -36,7 +36,7 @@ You want to contribute some code? Great! Here are a few steps to get you started
$ virtualenv venv $ virtualenv venv
$ source venv/bin/activate $ source venv/bin/activate
(venv) $ pip install -e .[validation] (venv) $ pip install -e .[validation]
(venv) $ pip install -rrequirements/dev.txt "Django>=1.11.7" (venv) $ pip install -r requirements/dev.txt
#. **Make your changes and check them against the test project** #. **Make your changes and check them against the test project**

View File

@ -67,10 +67,12 @@ class InlineSerializerInspector(SerializerInspector):
} }
prop_kwargs = filter_none(prop_kwargs) prop_kwargs = filter_none(prop_kwargs)
properties[property_name] = self.probe_field_inspectors( child_schema = self.probe_field_inspectors(
child, ChildSwaggerType, use_references, **prop_kwargs child, ChildSwaggerType, use_references, **prop_kwargs
) )
if child.required: properties[property_name] = child_schema
if child.required and not getattr(child_schema, 'read_only', False):
required.append(property_name) required.append(property_name)
result = SwaggerType( result = SwaggerType(

View File

@ -11,7 +11,7 @@ class ArticleSerializer(serializers.ModelSerializer):
read_only=True, read_only=True,
) )
uuid = serializers.UUIDField(help_text="should articles have UUIDs?", read_only=True) uuid = serializers.UUIDField(help_text="should articles have UUIDs?", read_only=True)
cover_name = serializers.FileField(use_url=False, source='cover', read_only=True) cover_name = serializers.FileField(use_url=False, source='cover', required=True)
group = serializers.SlugRelatedField(slug_field='uuid', queryset=ArticleGroup.objects.all()) group = serializers.SlugRelatedField(slug_field='uuid', queryset=ArticleGroup.objects.all())
original_group = serializers.SlugRelatedField(slug_field='uuid', read_only=True) original_group = serializers.SlugRelatedField(slug_field='uuid', read_only=True)