首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从serializer.data获取不正确的数据

从serializer.data获取不正确的数据
EN

Stack Overflow用户
提问于 2022-08-23 12:00:34
回答 1查看 85关注 0票数 0

我想从序列化程序中获取数据(数量),但是序列化程序得到的是无数据。但是当我从请求数据中得到数据时,我得到了正确的data.can,有人帮助解决了这个问题吗??

这是序列化程序数据和请求数据的响应体。从序列化数据中获取{'amount':1000000}请求主体和{'amount':None}:

代码语言:javascript
复制
System check identified no issues (0 silenced).
August 23, 2022 - 16:19:21
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
{'amount': 1000000}
{'amount': None}
Internal Server Error: /api/zarinpal/request/
Traceback (most recent

这是函数获取请求

代码语言:javascript
复制
@api_view(['GET', 'POST'])
@permission_classes([IsAuthenticated])
def request_to_pay(request):
    data = request.data
    print(data)
    serializer = RequestToPaySerializer(data=data)
    serializer.is_valid(raise_exception=True)
    print(serializer.data)

这是序列化程序类:

代码语言:javascript
复制
class RequestToPaySerializer(serializers.Serializer):
    amount = serializers.DecimalField(max_digits=20, decimal_places=3)
    description = serializers.CharField(required=False)
EN

回答 1

Stack Overflow用户

发布于 2022-08-23 12:44:07

这是因为请求的数据验证失败,序列化程序中没有数据表示,第一次打印显示它打印的数据只有数量,现在需要说明,因此我建议按以下方式执行视图

代码语言:javascript
复制
from rest_framework.response import Response
@api_view(['GET', 'POST'])
@permission_classes([IsAuthenticated])
def request_to_pay(request):
    data = request.data
    print(data)
    serializer = RequestToPaySerializer(data=data)
    if serializer.is_valid(raise_exception=True):
        return Response(data=serializer.data, status=200)
    print(serializer.error) # incase you want to show error
    return Response (data=serializer.error,status=400)

或您可以在序列化程序

中创建一个不需要的描述字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73458358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档