当我尝试使用Django REST框架发送JSON时,我收到此错误:
/ usermanagement / user /
的TypeError JSON对象必须是str,而不是' bytes'
我的帖子功能:
def post(self,request):
user=json.loads(request.body)
m_user= user.get('m_name', None)
m_email = user.get('m_email', None)
m_age=user.get('m_age', None)
m_status = user.get('u_status_id', None)
user = M_User(m_name=m_name, m_email=m_email, m_age=m_age, u_status_id=m_status)
user.save()
if user.save:
user=M_User.objects.filter(m_user=m_user)
serializer = M_Userserializer(user,many=True)
context = {
'success': "true",
'user': serializer.data
}
elif not user.save:
context={
'success':"false"
}
else:
context={
'success':"false"
}
return Response(context)
答案 0 :(得分:3)
在DRF中,您可以使用request.data
代替request.body
来获取已解析的请求:
user=request.data
在这种情况下,请求应为Request
,而不是标准django HttpRequest
。为确保这一点,您需要使用api_view
装饰器:
from rest_framework.decorators import api_view
@api_view()
def post(self,request):
user=request.data