NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2848 most downloaded on PyPI
Automated generation of real Swagger/OpenAPI 2.0 schemas from Django Rest Framework code.
Last release today
04 Oct 2026
Release timing varies
gaps range from 2 weeks to 1.2 years
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
70 releases · first in 2017
Nothing published for this version
IMPROVED: Use Python's native dict instead of OrderedDict ( #954 ) FIXED: Fix Python 3.12 type parameter syntax with from __future__ import annotation
FIXED: Fix missing swagger-ui sourcemaps
One column per quarter.
FIXED: Fix missing swagger-ui sourcemaps (#950)
Add version 1.21.13 details to the changelog
Add version 1.21.13 details to the changelog (#951)
FIXED: Bring the bundled swagger ui up to date ( #944 ) IMPROVED: Update the logout button to use a POST request. ( #945 ) ADDED: Add a live demo doma
FIXED: Fix list views with parameters in last path segment not named "list" views ( #917 ) ADDED: Allow overriding produces/consumes with @swagger_aut
FIXED: Fix list views with parameters in last path segment not named "list" views (#917)
ADDED: Allow overriding produces/consumes with @swagger_auto_schema decorator (#916)
FIXED: Fix filter parameters not appearing in swagger with django-filter>=25 (#926)
IMPROVED: Update Python, Django, and DRF versions and packaging configuration (#922)
IMPROVED: Remove usage of pkg_resources (#928)
FIXED: Fix call_view_method warning to include the method name again (#923)
ADDED: Add a hide download button option (#848)
ADDED: Add ruff linters (#903)
…) IMPROVED: Update swagger-ui-dist to address CVE-2021-46708
FIXED: Fix type hints when using postponed evaluation of annotations (PEP-563) (#840)
IMPROVED: Update JSON & YAML renderers to not use a "." in their format string (#911)
FIXED: Fix lint errors when comparing types with == instead of is (#868)
IMPROVED: Update swagger-ui-dist to address CVE-2021-46708 (#904)
ADDED: Added support for zoneinfo object fields
ADDED: Added support for zoneinfo object fields (#908)
ADDED: Python 3.11 and 3.12 support ( #891 ) FIXED: Fix pkg_resources version lookups for Python 3.9+
ADDED: Added drf_yasg.inspectors.query.DrfAPICompatInspector ( #857 ) ADDED: Added DrfAPICompatInspector to serve as a replacement CoreAPICompatInspec
Release date: Jul 20, 2023
ADDED: Added drf_yasg.inspectors.query.DrfAPICompatInspector ( #857 ) ADDED: Added DrfAPICompatInspector to serve as a replacement CoreAPICompatInspector ( #857 ) ADDED: Allow DEFAULT_SPEC_RENDERERS default renderers to be overriden in the settings ( #857 ) FIXED: Fixed redoc source mapping ( #859 )
IMPROVED: Remove required coreapi dependency ( #854 ) IMPROVED: Feature: Migrate to PyYAML for yaml generator ( #845 ) FIXED: Keep path parameters in
Release date: Jun 15, 2023
IMPROVED: Remove required coreapi dependency ( #854 ) IMPROVED: Feature: Migrate to PyYAML for yaml generator ( #845 ) FIXED: Keep path parameters in their given order ( #841 ) FIXED: Provide support for enums in codecs ( #837 )
ADDED: Python 3.10 support (#818) DEPRECATED: Python 3.6 support as it's been deprecated by swagger-spec-validator FIXED: RecursiveField resolver
ADDED: Python 3.10 support (#818) DEPRECATED: Python 3.6 support as it's been deprecated by swagger-spec-validator FIXED: RecursiveField resolver (#822)
Release date: Feb 09, 2023
ADDED: Python 3.10 support ( #818 ) DEPRECATED: Python 3.6 support as it’s been deprecated by swagger-spec-validator FIXED: RecursiveField resolver ( #822 )
FIXED: Remove NullBooleanFields if the django-rest-framework version >= 3.14.0
FIXED: Remove NullBooleanFields if the django-rest-framework version >= 3.14.0 (#814)
Release date: Sep 26, 2022
FIXED: Remove NullBooleanFields if the django-rest-framework version >= 3.14.0 ( #814 )
FIXED: Set generator url for swagger_settings.DEFAULT_API_URL (#682) FIXED: Check fields for allow_null attribute (#688) FIXED: Encode pytz object fie
FIXED: Set generator url for swagger_settings.DEFAULT_API_URL (#682) FIXED: Check fields for allow_null attribute (#688) FIXED: Encode pytz object field as a string by default (#717) FIXED: Handle errors rendering with TemplateHTMLRenderer (#742)
Release date: Jul 18, 2022
FIXED: Set generator url for swagger_settings.DEFAULT_API_URL ( #682 ) FIXED: Check fields for allow_null attribute ( #688 ) FIXED: Encode pytz object field as a string by default ( #717 ) FIXED: Handle errors rendering with TemplateHTMLRenderer ( #742 )
FIXED: Fixed code block rst syntax in README.rst
FIXED: Fixed code block rst syntax in README.rst (#797)
Release date: Jul 18, 2022
FIXED: Fixed code block rst syntax in README.rst
IMPROVED: Add utf-8 support to yaml loaders
Release date: Jul 14, 2022
FIXED: Source mapping in redoc.min.js
redoc.min.js (#778)publish.yml (#794)Release date: Jul 14, 2022
FIXED: Source mapping in redoc.min.js ( #778 )
FIXED: Publish action tag pattern in publish.yml ( #794 )
IMPROVED: updated swagger-ui to version 3.36.0
swagger-ui to version 3.36.0ReDoc to version 2.0.0-rc.40django.conf.settings.LOGOUT_URL (#646)Support was dropped for Python 2.7, DRF 3.8, DRF 3.9. Requirements are now: Python>=3.6, Django>=2.2, DRF>=3.10
The 1.18 and 1.19 series was skipped to avoid confusion with the drf-yasg2 fork. I would also like to take this opportunity to extend my apologies to the community at large for the large gap in the maintenance of drf-yasg and the problems it has caused.
FIXED: fixed compatibility issue with CurrentUserDefault in Django Rest Framework 3.11
Release date: Feb 17, 2020
USERNAME_FIELD in generate_swagger command (#486)Support was dropped for Python 3.5, Django 2.0, Django 2.1, DRF 3.7
ADDED: added JSONFieldInspector for JSONField support
JSONFieldInspector for JSONField support (#417)swagger-ui to version 3.23.11ReDoc to version 2.0.0-rc.14 (#398)Release date: Oct 03, 2019
ADDED: added JSONFieldInspector for JSONField support ( #417 )
IMPROVED: updated swagger-ui to version 3.23.11
IMPROVED: updated ReDoc to version 2.0.0-rc.14 ( #398 )
FIXED: fixed a type hint support issue ( #428 , #450 )
FIXED: fixed packaging issue caused by a missing requirement ( #412 )
FIXED: fixed DRF 3.10 compatibility (#408, #410, #411)
ChoiceFields (#400)Release date: Jul 16, 2019
IMPROVED: better enum type detection for nested ChoiceField s ( #400 )
FIXED: fixed DRF 3.10 compatibility ( #408 , #410 , #411 )
ADDED: added reference_resolver_class attribute hook to SwaggerAutoSchema
Release date: Jun 13, 2019
reference_resolver_class attribute hook to SwaggerAutoSchema (#350)operation_keys attribute to SwaggerAutoSchema, along with __init__ parameter (#355)issubclass check without isclass checkIMPROVED: updated swagger-ui to version 3.22.3
swagger-ui to version 3.22.3ReDoc to version 2.0.0-rc.8-1Python 3.4 support has been dropped!
Release date: Jun 13, 2019
IMPROVED: updated swagger-ui to version 3.22.3
IMPROVED: updated ReDoc to version 2.0.0-rc.8-1
FIXED: fixed an issue with inspection of typing hints on Python 2.7 ( #363 )
FIXED: fixed an issue with inspection of typing hints on Python 3.7 ( #371 )
Python 3.4 support has been dropped!
ADDED: added is_list_view and has_list_response extension points to SwaggerAutoSchema
is_list_view and has_list_response extension points to SwaggerAutoSchema (#331)swagger-ui to version 3.22.0ReDoc to version 2.0.0-rc.4ListModelMixin will now always be treated as a list view (#306)choices will now be handled properly (#340)🎉 400 commits 🎉
Release date: Apr 01, 2019
ADDED: added is_list_view and has_list_response extension points to SwaggerAutoSchema ( #331 )
IMPROVED: updated swagger-ui to version 3.22.0
IMPROVED: updated ReDoc to version 2.0.0-rc.4
FIXED: ListModelMixin will now always be treated as a list view ( #306 )
FIXED: non-primitive values in field choices will now be handled properly ( #340 )
FIXED: the items property of Schema, Parameter and Items objects was renamed to items_; this is a *mildly breaking change* and was needed to fix the c…
swagger-ui to version 3.21.0ref_name collisions will now throw an exceptionRecursiveField will now also work as a child of ListSerializer (#321)minLength and maxLength for ListSerializer and ListFielditems property of Schema, Parameter and Items objects was renamed to items_; this is a mildly breaking change and was needed to fix the collision with the items method of dict (#308)get_summary and get_description methods have been removed (previously deprecated in 1.12.0)DEPRECATED: quietly dropped support for the flex validator; it will still work if the library is installed, but the setup.py requirement was removed a…
Optional (#272)swagger-ui to version 3.20.5ReDoc to version 2.0.0-rc.2flex validator; it will still work if the library is installed, but the setup.py requirement was removed and the validator will be silently skipped if not installed (#285)IMPROVED: updated ReDoc to version 2.0.0-rc.0
ReDoc to version 2.0.0-rc.0DEFAULT_VERSION for mock requestself parameterRelease date: Dec 28, 2018
IMPROVED: updated ReDoc to version 2.0.0-rc.0
FIXED: management command will now correctly fall back to DEFAULT_VERSION for mock request
FIXED: fixed bad “raised exception during schema generation” warnings caused by missing self parameter
DEPRECATED: the get_summary and get_description extension points have been deprecated in favor of the new get_summary_and_description, and will be rem…
get_security_definitions and get_security_requirements hooks to OpenAPISchemaGeneratorget_summary_and_description and split_summary_from_description extension points to SwaggerAutoSchema to allow for better customisationswagger-ui to version 3.20.4next and previous fields are now marked as x-nullable (#263)tags argument to swagger_auto_schema (#259)enum will now be automatically detected from ChoiceField if all choices values are objects of the same Python class (#264)SwaggerValidationError details will now be logged and shown in the exception messageget_queryset, get_parsers and get_renderers will no longer be bypassedread_only serializer fields will be correctly ignored when generating form parameters (#261)UIRenderer (#268)securityDefinitions and security objectsget_summary and get_description extension points have been deprecated in favor of the new get_summary_and_description, and will be removed in a future releaseIMPORTANT PACKAGING NOTE
Starting with this version, the setup_requires argument was dropped from setup.py in favor of build-system.requires in pyproject.toml . This means that for correctly building or installing from sdist, you will need to use a PEP517/PEP518 compliant tool (tox>=3.3.0, setuptools>=40, pip>=10.0, pep517.build) or manually install the build requirements yourself (just setuptools and setuptools-scm, for now).
Additionally, for correct package version detection, a full git checkout is required when building (this was always the case). Building without .git or without setuptools-scm will result in a distribution with a version like drf-yasg-1!0.0.0.dev0+noscm.00000167d19bd859.
IMPROVED: updated swagger-ui to version 3.20.1
swagger-ui to version 3.20.1ReDoc to version 2.0.0-alpha.41minLength and maxLength will now also work for ListSerializer in addition to ListFieldMultipleChoiceField will now use the multi collectionFormat where appropriate (#257)format, pattern, enum, min_length and max_length attributes of coreschema.Schema will now be persited into the converted openapi.Parameter (#212, #233)Release date: Nov 29, 2018
IMPROVED: updated swagger-ui to version 3.20.1
IMPROVED: updated ReDoc to version 2.0.0-alpha.41
FIXED: minLength and maxLength will now also work for ListSerializer in addition to ListField
FIXED: MultipleChoiceField will now use the multi collectionFormat where appropriate ( #257 )
FIXED: the format , pattern , enum , min_length and max_length attributes of coreschema.Schema will now be persisted into the converted openapi.Parameter ( #212 , #233 )
ADDED: PERSIST_AUTH, REFETCH_SCHEMA_WITH_AUTH, REFETCH_SCHEMA_ON_LOGOUT settings and related javascript implementation for persisting authentication d
PERSIST_AUTH, REFETCH_SCHEMA_WITH_AUTH, REFETCH_SCHEMA_ON_LOGOUT settings and related javascript implementation for persisting authentication data to swagger-ui localStorageSwagger object with no paths and definitionsFETCH_SCHEMA_WITH_QUERY setting to enable fetching of the schema document using query parameters passed to the UI view (#208)x-nullable extension (#217)swagger-ui.html/redoc.html and some JavaScript hooks in swagger-ui-init.jsinspect.signature on python 2.7 (#222)ADDED: added the DISPLAY_OPERATION_ID swagger-ui setting
DISPLAY_OPERATION_ID swagger-ui settingReDoc to version 2.0.0-alpha.38pattern will now work on any field with a RegexValidator (would previously not appear on fields with special formats such as EmailField)RelatedFieldInspector handling of nested serializersreverse_lazy in URL settings (#209)FIXED: fixed implementation of operation_summary and deprecated (#194, #198)
SPEC_URL setting for controlling the download link in swagger-ui and ReDocReDoc settings (added NATIVE_SCROLLBARS and REQUIRED_PROPS_FIRST)extra_styles and extra_scripts blocks to ui templates (#178)swagger-ui to version 3.18.2ReDoc to version 2.0.0-alpha.37readOnly SchemasUSE_SESSION_AUTH=Falseoperation_summary and deprecated (#194, #198)typing hints (#195)future (#196)default=None (#203)request_body=no_body handling and related tests (#188, #199)IMPROVED: added operation_summary and deprecated arguments to swagger_auto_schema (#149, #173)
EXCLUDED_MEDIA_TYPES setting for controlling produces MIME type filtering (#158)SerializerMethodField, via the swagger_serializer_method decorator for the method field, and support for Python 3.5 style type hinting of the method field return type (#137, #175, #179)
NOTE: in order for this to work, you will have to add the new drf_yasg.inspectors.SerializerMethodFieldInspector to your DEFAULT_FIELD_INSPECTORS array if you changed it from the default valueswagger-ui to version 3.18.0swagger_schema_fields will now also work on serializer Fields (#167)ref_name collisions will now log a warning message (#156)operation_summary and deprecated arguments to swagger_auto_schema (#149, #173)swagger_auto_schema work with DRF 3.9 @action mappings (#177)IMPROVED: updated swagger-ui to version 3.17.6
swagger-ui to version 3.17.6ReDoc to version 2.0.0-alpha.32--api-version argument to the generate_swagger management command (#170)generate_swagger work for projects without authentication (#161)SafeText interaction with YAML codec (#159)IMPROVED: added a swagger_fake_view marker to more easily detect mock views in view methods; getattr(self, 'swagger_fake_view', False) inside a view m
swagger_fake_view marker to more easily detect mock views in view methods; getattr(self, 'swagger_fake_view', False) inside a view method like get_serializer_class will tell you if the view instance is being used for swagger schema introspection (#154)swagger-ui to version 3.17.1ReDoc to version 2.0.0-alpha.25None as a response override (#148)Nothing published for this version
ADDED: added DEFAULT_GENERATOR_CLASS setting and --generator-class argument to the generate_swagger management command
Release date: Jun 16, 2018
DEFAULT_GENERATOR_CLASS setting and --generator-class argument to the generate_swagger management command (#140)'count' response field on CursorPagination (#141)swagger_extra_fields would not be handlded (#142)coreapi.Fieldss without a schema (#143)Release date: Jun 16, 2018
ADDED: added DEFAULT_GENERATOR_CLASS setting and --generator-class argument to the generate_swagger management command ( #140 )
FIXED: fixed wrongly required 'count' response field on CursorPagination ( #141 )
FIXED: fixed some cases where swagger_schema_fields would not be handled ( #142 )
FIXED: fixed crash when encountering coreapi.Fields s without a schema ( #143 )
ADDED: added a swagger_schema_fields field on serializer Meta classes for customizing schema generation (#132, #134)
ADDED: added a swagger_schema_fields field on serializer Meta classes for customizing schema generation (#132, #134)
FIXED: error responses from schema views are now rendered with JSONRenderer instead of throwing confusing errors (#130, #58)
FIXED: readOnly schema fields will now no longer be marked as required (#133)
IMPROVED: updated swagger-ui to version 3.14.2
Release date: May 14, 2018
swagger-ui to version 3.14.2ReDoc to version 2.0.0-alpha.20None return from get_operation to avoid empty Path objects in outputDELETE endpoints (#118)FIXED: views whose __init__ methods throw exceptions will now be ignored during endpoint enumeration
__init__ methods throw exceptions will now be ignored during endpoint enumerationRelease date: May 12, 2018
FIXED: fixed generation of default SECURITY_REQUIREMENTS to match documented behaviour
SECURITY_REQUIREMENTS to match documented behaviourSECURITY_REQUIREMENTS and SECURITY_DEFINITIONS is now stableRelease date: May 12, 2018
FIXED: fixed generation of default SECURITY_REQUIREMENTS to match documented behavior
FIXED: ordering of SECURITY_REQUIREMENTS and SECURITY_DEFINITIONS is now stable
IMPROVED: updated swagger-ui to version 3.14.1
swagger-ui to version 3.14.1swagger-ui showCommonExtensions to True by default and add SHOW_COMMON_EXTENSIONS setting keymin_length=1 when allow_blank=False (#112, thanks to @elnappo)SwaggerDict extra attributes stableRelease date: May 05, 2018
IMPROVED: updated swagger-ui to version 3.14.1
IMPROVED: set swagger-ui showCommonExtensions to True by default and add SHOW_COMMON_EXTENSIONS setting key
IMPROVED: set min_length=1 when allow_blank=False ( #112 , thanks to @elnappo )
FIXED: made documentation ordering of SwaggerDict extra attributes stable
ADDED: added integration with djangorestframework-recursive (#109, #110, thanks to @rsichny)
ADDED: added integration with djangorestframework-recursive (#109, #110, thanks to @rsichny)
NOTE: in order for this to work, you will have to add the new drf_yasg.inspectors.RecursiveFieldInspector to your DEFAULT_FIELD_INSPECTORS array if you changed it from the default value
FIXED: SchemaRef now supports cyclical references via the ignore_unresolved argument
Release date: Apr 27, 2018
ADDED: added integration with djangorestframework-recursive (109, 110, thanks to rsichny)
NOTE: in order for this to work, you will have to add the new drf_yasg.inspectors.RecursiveFieldInspector to your DEFAULT_FIELD_INSPECTORS array if you changed it from the default value
FIXED: SchemaRef now supports cyclical references via the ignore_unresolved argument
IMPROVED: updated swagger-ui to version 3.13.6
swagger-ui to version 3.13.6ReDoc to version 2.0.0-alpha.17 (was 1.21.2); fixes #107ChoiceField of unknown child typeADDED: added SUPPORTED_SUBMIT_METHODS swagger-ui setting
SUPPORTED_SUBMIT_METHODS swagger-ui settingRelease date: Apr 01, 2018
IMPROVED: OAUTH2_REDIRECT_URL will now default to the built in oauth2-redirect.html file
OAUTH2_REDIRECT_URL will now default to the built in oauth2-redirect.html fileRelease date: Mar 24, 2018
IMPROVED: updated swagger-ui to version 3.13.0
swagger-ui to version 3.13.0serializers.OneToOneRel (#81, thanks to @ko-pp)Release date: Mar 18, 2018
IMPROVED: updated swagger-ui to version 3.13.0
FIXED: fixed a crash caused by serializers.OneToOneRel ( #81 , thanks to @ko-pp )
IMPROVED: serializers.HiddenField are now hidden (#78, #79, thanks to @therefromhere)
IMPROVED: serializers.HiddenField are now hidden (#78, #79, thanks to @therefromhere)
NOTE: in order for this to work, you will have to add the new drf_yasg.inspectors.HiddenFieldInspector to your DEFAULT_FIELD_INSPECTORS array if you changed it from the default value
IMPROVED: type of model field is now detected for serializers.SlugRelatedField with read_only=True (#82, #83, thanks to @therefromhere)
Release date: Mar 12, 2018
IMPROVED: serializers.HiddenField are now hidden (78, 79, thanks to therefromhere)
NOTE: in order for this to work, you will have to add the new drf_yasg.inspectors.HiddenFieldInspector to your DEFAULT_FIELD_INSPECTORS array if you changed it from the default value
IMPROVED: type of model field is now detected for serializers.SlugRelatedField with read_only=True (82, 83, thanks to therefromhere)
FIXED: prevent crashes caused by attempting to delete object attributes which do not exist in the first place
Release date: Mar 05, 2018
IMPROVED: updated swagger-ui to version 3.12.0
swagger-ui to version 3.12.0ReDoc to version 1.21.2Release date: Mar 05, 2018
IMPROVED: updated swagger-ui to version 3.12.0
IMPROVED: updated ReDoc to version 1.21.2
FIXED: fixed an issue with modification of swagger_auto_schema arguments in-place during introspection, which would sometimes cause an incomplete Swag
swagger_auto_schema arguments in-place during introspection, which would sometimes cause an incomplete Swagger document to be generated after the first pass (#74, #75)Release date: Mar 05, 2018
IMPROVED: type for ChoiceField generated by a ModelSerializer from a model field with choices=... will now be set according to the associated model fi
type for ChoiceField generated by a ModelSerializer from a model field with choices=... will now be set according to the associated model field (#69)lookup_field and lookup_value_regex on the same ViewSet will no longer trigger an (#68)Release date: Feb 26, 2018
IMPROVED: type for ChoiceField generated by a ModelSerializer from a model field with choices=... will now be set according to the associated model field ( #69 )
FIXED: lookup_field and lookup_value_regex on the same ViewSet will no longer trigger an exception ( #68 )
FIXED: added a missing assignment that would cause the default argument to openapi.Parameter.__init__ to be ignored
default argument to openapi.Parameter.__init__ to be ignoredRelease date: Feb 22, 2018
FIXED: fixed a bug that causes a ModelViewSet generated from models with nested ForeignKey to output models named Nested into the definitions section
ModelViewSet generated from models with nested ForeignKey to output models named Nested into the definitions section (#59, #65)Response objects without a schema are now properly handled when passed through swagger_auto_schema (#66)Release date: Feb 22, 2018
FIXED: fixed a bug that causes a ModelViewSet generated from models with nested ForeignKey to output models named Nested into the definitions section ( #59 , #65 )
FIXED: Response objects without a schema are now properly handled when passed through swagger_auto_schema ( #66 )
FIXED: the coerce_to_string is now respected when setting the type, default value and min/max values of DecimalField in the OpenAPI schema
coerce_to_string is now respected when setting the type, default value and min/max values of DecimalField in the OpenAPI schema (#62)TemplateHTMLRenderer instead of throwing confusing errors (#58)swagger-ui to version 3.10.0ReDoc to version 1.21.0ADDED: added settings for OAuth2 client configuration in swagger-ui
swagger-ui (#53)swagger-ui to version 3.9.3Release date: Feb 04, 2018
ADDED: added settings for OAuth2 client configuration in swagger-ui ( #53 )
IMPROVED: updated swagger-ui to version 3.9.3
FIXED: fixed a bug that would sometimes cause endpoints to wrongly be output as form operations
produces based on renderer classesconsumes and produces based on DEFAULT_PARSER_CLASSES and DEFAULT_RENDERER_CLASSES (#48)Release date: Jan 24, 2018
FIXED: fixed a bug that would sometimes cause endpoints to wrongly be output as form operations ( #50 )
IMPROVED: added generation of produces based on renderer classes
IMPROVED: added generation of top-level consumes and produces based on DEFAULT_PARSER_CLASSES and DEFAULT_RENDERER_CLASSES ( #48 )
ADDED: security requirements are now correctly set and can be customized; this should fix problems related to authentication in swagger-ui Try it out!
swagger-ui Try it out! (#50, #54)swagger-ui to version 3.9.2ReDoc to version 1.20.0FIXED: djangorestframework>=3.7.7 is now required because of breaking changes (#44, #45, thanks to @h-hirokawa)
Release date: Jan 12, 2018
Release date: Jan 12, 2018 - Fixed deployment issues
Release date: Jan 12, 2018
Your coding agent can read these notes before it upgrades. Set up the MCP server →