首页 > 解决方案 > 当我灌封数据'str'对象没有属性'update'时它显示错误

问题描述

@api_view(['GET', 'POST'])
def compnay_list(request):
    """
    List all Compnays, or create a new Compnay.
    """
    if request.method == 'GET':
        compnay = Company.objects.all()
        serializer = CompanySerializer(compnay, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
        try:
            print(request.data.get('email'))
            user_id = User.objects.get(email=request.data.get('email')).id
            print(request.data)
            user_response = request.data.get('user_response')
            for item in user_response:
                item.update({"user": user_id})

            serializer = CompanySerializer(data=user_response)

            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data, status=status.HTTP_201_CREATED)

            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

        except User.DoesNotExist:

            print("Error:email not available")

标签: pythondictionary

解决方案


您无法更新item哪个是字符串(update是 dict 方法)。

改变:

user_response = request.data.get('user_response')
for item in user_response:
    item.update({"user": user_id})

至:

user_response = request.data.get('user_response')
user_response.update({"user": user_id})

推荐阅读