没有JSON对象可以解码Django请求.正文

2024-09-19 23:34:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个从智能手机发布评论的网络服务,下面是我的代码

@api_view(['POST'])
def comment_post(request,newsId=None):
    data = json.loads(request.body)
    responseData= dict({
       "result": list()
       })
    if(newsId):
        commentNews  = models.Comments.objects.create()
        commentNews.comment_description = data.get('comment_description').strip()
        commentNews.like_count = int(data.get('like_count'))
        commentNews.user_name = data.get('user_name').strip()
        commentNews.user_email_id = data.get('user_email_id').strip()
        commentNews.parent_comment = data.get('parent_comment').strip()
        commentNews.save()
        subscribed_user = models.SubscribedUsers.objects.create(username=data.get('user_name').strip(),email=data.get('user_email_id').strip())
        news = models.News.objects.get(id=int(newsId))
        news.comments.add(commentNews)
        data ={
         'status':'success'
         }
    else:
        data ={
        'status':'failure'
        }
    responseData['result'].append(data)
    return Response(responseData,status=status.HTTP_200_OK) 

每当我在本地检查它时,它都能工作,但在服务器端,它给我的错误如下

^{pr2}$

我不明白为什么它会 异常值:无法解码JSON对象


Tags: nameiddatagetobjectsmodelsemailrequest
1条回答
网友
1楼 · 发布于 2024-09-19 23:34:50

我猜,你在用django-rest-framework。因此,您不必执行json.loads(),因为django-rest-frameworkPOST请求提供{},而为{}请求提供{},已经用json格式解析了。在

所以我认为这对你有用。在

@api_view(['POST'])
def comment_post(request,newsId=None):
responseData= dict({
   "result": list()
   })
if(newsId):
    commentNews  = models.Comments.objects.create()
    commentNews.comment_description = request.data.get('comment_description').strip()
    commentNews.like_count = int(request.data.get('like_count'))
    commentNews.user_name = request.data.get('user_name').strip()
    commentNews.user_email_id = request.data.get('user_email_id').strip()
    commentNews.parent_comment = request.data.get('parent_comment').strip()
    commentNews.save()
    subscribed_user = models.SubscribedUsers.objects.create(username=request.data.get('user_name').strip(),email=request.data.get('user_email_id').strip())
    news = models.News.objects.get(id=int(newsId))
    news.comments.add(commentNews)
    data ={
     'status':'success'
     }
else:
    data ={
    'status':'failure'
    }
responseData['result'].append(data)
return Response(responseData,status=status.HTTP_200_OK) 

有关详细信息,请阅读docs here

相关问题 更多 >