Django 4 с drf_spectacular Swagger не выполняет POST
У меня есть следующие классы, использующие django-restframework и drf-spectacular.
Я могу выполнить POST, когда я вошел в систему и через маршруты drf по умолчанию, но не используя маршруты swagger-ui.
Я могу обратиться к этому url: http:/example.com/api/schema/swagger-ui/#/organism/organism_create
Но когда я нажимаю кнопку Execute, ничего не происходит. Я ожидаю, что будет показана команда CURL и т.д. Также я не вижу ответа на бэкенде сервера. В отличие от метода GET. Здесь сервер печатает: 11/Feb/2022 22:34:02] "GET /api/organism/ HTTP/1.1" 200 275
Я действительно зашел в систему и сначала указал свое имя пользователя и пароль.
Что не так с этой установкой?
models.py
class Organism(models.Model):
short_label = models.CharField(max_length=100)
long_label = models.CharField(max_length=100)
genus = models.CharField(max_length=100)
def __str__(self):
return self.long_label
serializers.py
class OrganismSerializer(serializers.ModelSerializer):
class Meta:
model = models.Organism
fields = ('__all__')
views.py
class ReadOnly(BasePermission):
def has_permission(self, request, view):
return request.method in SAFE_METHODS
class OrganismViewset(viewsets.ModelViewSet):
queryset = models.Organism.objects.all()
serializer_class = serializers.OrganismSerializer
parser_classes = [parsers.MultiPartParser, parsers.FormParser]
http_method_names = ['get', 'post', 'patch', 'delete']
# Permissions
permission_classes = [IsAuthenticated|ReadOnly]
def get(self, request, format=None):
content = {
'status': 'request was permitted'
}
return Response(content)
urls.py
router = SimpleRouter()
router.register('organism', views.OrganismViewset)
settings.py
Я пробовал разные настройки. Используя BasicAuth.., я получаю запрос на имя пользователя и пароль, но все равно ничего не происходит.
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
#'rest_framework.permissions.IsAuthenticated'
'rest_framework.permissions.AllowAny',
],
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
#'DEFAULT_AUTHENTICATION_CLASSES': [
#'rest_framework.authentication.BasicAuthentication',
#'rest_framework.authentication.SessionAuthentication',
#]
}
Когда я пытаюсь опубликовать что-то с помощью модуля Python request, сервер выводит:
Bad Request: /api/organism/
вы добавляете эти настройки полезными для вас
settings.py
SPECTACULAR_SETTINGS = {
'COMPONENT_SPLIT_REQUEST': True,
}
