我正在用Django和restframework jsonapi包开发restapi。 我提出以下要求
curl --location --request POST 'http://localhost:8000/api/students/' \
--header 'Content-Type: application/json' \
--data-raw '{
"data": {
"type": "students",
"attributes": {
"first_name": "First Name",
"last_name": "Last Name"
}
}
}'
我得到了这个回应
{
"errors": [
{
"detail": "This field is required.",
"status": "400",
"source": {
"pointer": "/data/attributes/first_name"
},
"code": "required"
}
]
}
这是我的密码: 型号.py你知道吗
class Student(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
你知道吗序列化程序.py你知道吗
class StudentSerializer(serializers.ModelSerializer):
class Meta:
model = Student
fields = ('first_name',)
你知道吗视图.py你知道吗
class StudentsViewSet(viewsets.ModelViewSet):
queryset = Student.objects.all()
parser_classes = (JSONParser, FormParser, MultiPartParser)
serializer_class = StudentSerializer
你知道吗网址.py你知道吗
router = routers.DefaultRouter()
router.register(r'students', views.StudentsViewSet, 'student')
urlpatterns = [
path('', views.index, name='index'),
path('api/', include(router.urls))
]
你知道吗设置.py你知道吗
REST_FRAMEWORK = {
'DEFAULT_PARSER_CLASSES': (
'rest_framework_json_api.parsers.JSONParser',
'rest_framework.parsers.FormParser',
'rest_framework.parsers.MultiPartParser'
)
}
如果我不使用JSONParser,而是使用普通的django请求格式,而不是jsonapi,那么就可以了。我错过了什么?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐