这个错误在 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'
我该如何解决这个问题? 链接。它没有回答问题。
NullBooleanField 在 DRF 3.14.0 中被删除 - 请参阅 https://github.com/encode/django-rest-framework/pull/8599
建议避免使用 3.14.0,除非你能找到其他方法来解决..
djangorestframework>=3.13.1,!=3.14.0
您使用哪个 drf 版本?我今天遇到了同样的问题,从 djangorestframework = "^3.13.1" 更改为 djangorestframework = "3.13.1" 解决了这个问题。我猜今天是 drf 3.14 发布了
drf-yasg 版本 1.21.4,于 9 月 27 日发布,修复了此问题。
FIXED: Remove NullBooleanFields if the django-rest-framework version >= 3.14.0 (#814)
在 AttributeError 中得到回答:模块“rest_framework.serializers”没有属性“NullBooleanField”:
NullBooleanField 已弃用,将从以下版本开始删除 3.14。相反,使用 BooleanField 字段并设置 allowed_null=True ,它会执行相同的操作。