diff --git a/src/drf_yasg/inspectors/field.py b/src/drf_yasg/inspectors/field.py index ed77d3e..7ada538 100644 --- a/src/drf_yasg/inspectors/field.py +++ b/src/drf_yasg/inspectors/field.py @@ -211,7 +211,14 @@ def find_regex(regex_field): regex_validator = validator # regex_validator.regex should be a compiled re object... - return getattr(getattr(regex_validator, 'regex', None), 'pattern', None) + pattern = getattr(getattr(regex_validator, 'regex', None), 'pattern', None) + if pattern: + # attempt some basic cleanup to remove regex constructs not supported by JavaScript + # -- swagger uses javascript-style regexes - see https://github.com/swagger-api/swagger-editor/issues/1601 + if pattern.endswith('\\Z') or pattern.endswith('\\z'): + pattern = pattern[:-2] + '$' + + return pattern numeric_fields = (serializers.IntegerField, serializers.FloatField, serializers.DecimalField) diff --git a/src/drf_yasg/inspectors/view.py b/src/drf_yasg/inspectors/view.py index ff3c6fd..97eb44f 100644 --- a/src/drf_yasg/inspectors/view.py +++ b/src/drf_yasg/inspectors/view.py @@ -162,9 +162,7 @@ class SwaggerAutoSchema(ViewInspector): default_status = guess_response_status(method) default_schema = '' - if method == 'post': - default_schema = self.get_request_serializer() or self.get_view_serializer() - elif method in ('get', 'put', 'patch'): + if method in ('get', 'post', 'put', 'patch'): default_schema = self.get_request_serializer() or self.get_view_serializer() default_schema = default_schema or '' diff --git a/tests/reference.yaml b/tests/reference.yaml index 1145ff4..f41b519 100644 --- a/tests/reference.yaml +++ b/tests/reference.yaml @@ -1108,7 +1108,7 @@ definitions: items: type: string format: slug - pattern: ^[-a-zA-Z0-9_]+\Z + pattern: ^[-a-zA-Z0-9_]+$ readOnly: true readOnly: true uniqueItems: true