AttributeError: модуль 'rest_framework.serializers' не имеет атрибута 'NullBooleanField' в Django внутри Swagger
Эта ошибка возникает в django, хотя он даже нигде не импортирован. Она выбрасывается OpenAPISchemaGenerator следующим образом:
File "/opt/hostedtoolcache/Python/3.8.13/x64/lib/python3.8/site-packages/drf_yasg/inspectors/field.py", line 406, in <module>
(serializers.NullBooleanField, (openapi.TYPE_BOOLEAN, None)),
AttributeError: module 'rest_framework.serializers' has no attribute 'NullBooleanField'
Как это исправить? ссылка. Она не отвечает на вопрос.
Какую версию drf вы используете? У меня была такая же проблема сегодня, изменение djangorestframework = "^3.13.1" на djangorestframework = "3.13.1" решило проблему. Полагаю, сегодня состоялся релиз drf 3.14
NullBooleanField был удален в DRF 3.14.0 - см. https://github.com/encode/django-rest-framework/pull/8599
Советую избегать 3.14.0, если только вы не найдете другой способ решения...
djangorestframework>=3.13.1,!=3.14.0
Поддержка NullBooleanField была удалена в версии 3.14.0. Я поднял проблему на drf-yasg
github с просьбой о поддержке этой версии drf
. Они также выпустили PR для этого, который еще предстоит объединить.
drf-yasg версии 1.21.4, выпущенной 27 сентября, исправляет это.
FIXED: Remove NullBooleanFields if the django-rest-framework version >= 3.14.0 (#814)