zoukankan      html  css  js  c++  java
  • self.user = serializer_field.context['request'].user KeyError: 'request

    django DRF:

    APIView和通用API的细节区别:

     使用CurrentUserDefault()时报错:

    user = serializers.HiddenField(
    default=serializers.CurrentUserDefault()

     报错如下:

    File "C:Userssz.yuEnvsSmartshoplibsite-packages est_frameworkfields.py", line 271, in set_context 

    self.user = serializer_field.context['request'].user 

    KeyError: 'request'

    这是因为我使用的APIView而不是GenericAPIView(GenericAPIView会自动对context处理,而APIView不会) 

    所有视图中序列化应该这样写:

    def post(self, request, format=None):
    context = {
    "request":request,
    }
    serializer = UserMessageCreateSerializer(data=request.data, context=context)
    if serializer.is_valid(raise_exception=True):
    serializer.save()
    return Response(serializer.data, status=HTTP_201_CREATED, content_type="application/json")

     额外传递 context=context参数

  • 相关阅读:
    POST
    界面,数据下载
    异步下载
    Cell
    循环&信息添加&颜色修改
    通讯录
    图片循环
    多删搜索
    图片滚动
    TableView
  • 原文地址:https://www.cnblogs.com/yushengzhou/p/9873140.html
Copyright © 2011-2022 走看看