django drf-spectual post方法不适用于表单字段

mwg9r5ms  于 2022-11-19  发布在  Go
关注(0)|答案(2)|浏览(155)

我使用的是Django Rest框架,而文档我使用的是drf-spectacular
但我面临的问题是,当我试图使用表单提交时,我不能提交。但我可以正常使用JSON类型提交。

这不起作用:

此工作方式:

我怎样才能使表单工作?它甚至不让我提交表单。还有,我怎样才能使profile_pic成为filefield?
下面是我的代码:

设置.py

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ),
    'DEFAULT_PARSER_CLASSES': [
        'rest_framework.parsers.JSONParser',
        'rest_framework.parsers.FormParser',
        'rest_framework.parsers.MultiPartParser',
        'rest_framework.parsers.FileUploadParser',
    ],
    'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
}

SPECTACULAR_SETTINGS = {
    'TITLE': 'Your Project API',
    'DESCRIPTION': 'Your project description',
    'VERSION': '1.0.0',
}

序列化程序.py

from rest_framework import serializers
from app_restaurant import models

class RestaurantSerializer(serializers.ModelSerializer):
    """
    Restaurant Create Serializer
    """
    class Meta:
        model = models.Restaurant
        fields = '__all__'
        extra_kwargs = {
            'slug': {'read_only': True},
        }

查看次数.py

from rest_framework import generics
from app_restaurant import serializers, models
from app_user import apipermissions

# Create your views here.
class RestaurantCreateView(generics.CreateAPIView):
    """
    Restaurant Creation View
    """
    permission_classes = [apipermissions.IsOwner]
    serializer_class = serializers.RestaurantSerializer
    queryset = models.Restaurant.objects.all()
kkbh8khc

kkbh8khc1#

这里的application/x-www-form-urlencoded也是一样的。虽然它是在curl中工作的。我正在考虑删除application/x-www-form-urlencoded和multipart/form-data选项-因为我只需要JSON -如果可以的话,我可以使用css或javascript完全脱离html。

1tu0hz3e

1tu0hz3e2#

将此选项添加到SPECTACULAR_SETTINGS:
'COMPONENT_SPLIT_REQUEST': True,

相关问题