我使用的是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()
2条答案
按热度按时间kkbh8khc1#
这里的application/x-www-form-urlencoded也是一样的。虽然它是在curl中工作的。我正在考虑删除application/x-www-form-urlencoded和multipart/form-data选项-因为我只需要JSON -如果可以的话,我可以使用css或javascript完全脱离html。
1tu0hz3e2#
将此选项添加到SPECTACULAR_SETTINGS:
'COMPONENT_SPLIT_REQUEST': True,