【发布时间】:2021-11-16 23:10:30
【问题描述】:
我尝试使用 django restframework 通过 post 方法将一些数据发布到我的数据库中,但我遇到了这个问题 HTTP 400 Bad Request : VM972 jquery-3.5.1.min.js:2 POST http://127.0.0.1:8000/newmember/ 400 (Bad请求)
{
"id":1,
"first_name": "paul",
"last_name": "scholes",
"discipline": "football",
"start_date": "01-01-2000",
"end_date": "01-01-2012",
"email": "paulscholes@gmail.com"
}
视图文件
@api_view(['POST'])
def insert_member(request):
if request.method == "POST":
# data = JSONParser().parse(request.data)
member_serializer = MemberSerializer(data=request.data)
if member_serializer.is_valid():
member_serializer.save()
return Response(member_serializer.data,status=201)
return Response(member_serializer.data,status=400)
网址文件
urlpatterns = [
path('admin/', admin.site.urls),
path('equipments/', include('equipments.urls')),
path('gym/',views.equipmentList.as_view()),
path('newmember/', insert_member,name='insert_member'),
]
序列化程序文件
from rest_framework import serializers
from .models import Member```
class MemberSerializer(serializers.ModelSerializer):
class Meta:
model = Member
fields = '__all__'
【问题讨论】:
-
在 post 方法中,将序列化程序定义为 serializer = MemberSerializer(data=request.data) 而不是 member_serializer=.... 然后 if serializer.is_valid 而不是 if member_serializers.is_valid 。该方法需要序列化器的值。
标签: django-rest-framework postman django-urls rest bad-request