Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 修正属性错误:';str';对象没有属性';HTTP#u 201#u创建';_Django_Python 3.x_Django Rest Framework - Fatal编程技术网

Django 修正属性错误:';str';对象没有属性';HTTP#u 201#u创建';

Django 修正属性错误:';str';对象没有属性';HTTP#u 201#u创建';,django,python-3.x,django-rest-framework,Django,Python 3.x,Django Rest Framework,我在一个视图集上实现了以下方法,在发布我得到的属性错误时遇到了问题:“str”对象没有属性“HTTP\u 201\u CREATED”。既然数据已经被序列化为json格式,为什么我会收到这个错误消息 def create(self, request,*args, **kwargs): # Payload Items paid_to = request.data['paid_to'] paid_from = request.data['paid_f

我在一个视图集上实现了以下方法,在发布我得到的属性错误时遇到了问题:“str”对象没有属性“HTTP\u 201\u CREATED”。既然
数据
已经被序列化为json格式,为什么我会收到这个错误消息

def create(self, request,*args, **kwargs):
        # Payload Items 
        paid_to = request.data['paid_to']
        paid_from = request.data['paid_from']
        amount = request.data['amount']
        description = request.data['description']
        date = request.data['date']
        status = request.data['status']

        # System Item
        auth_= get_auth(request)
        # Limit currency choices if setup
        default_currency = DEFAULT_CURRENCY
        # Get Transaction Type & show cr and dr accounts involved:
        transaction_type = TransactionType.objects.get(id=request.data['transaction_type'])
        get_credit_account = transaction_type.credit_account
        get_debit_account = transaction_type.debit_account 

        # Money To Internal Value 
        amount_to = Money(amount,DEFAULT_CURRENCY)

        # Auto generate transaction number 
        transaction_number = increment_transaction_number()

        # Create Transaction objects 

        transaction = Transaction.objects.create(
            transaction_type=transaction_type,
            organization=auth_,
            paid_to=paid_to,
            paid_from=paid_from,
            description=description,
            date=date,
            amount=amount_to,
            transaction_number=transaction_number)
        trans_id = transaction.id
        # print(trans_id)
        # Add directions to legs  ..note positive direction is DEBIT and negative direction is CREDIT
        positive_direction = 1
        negative_direction = -1


        # Add leg objects instances to track debits and credits TODO can add mutiple legs

        Leg.objects.create(transaction=Transaction.objects.get(id=transaction.id), account=get_credit_account, description=transaction.description, amount=+amount_to * positive_direction)
        Leg.objects.create(transaction=Transaction.objects.get(id=transaction.id), account=get_debit_account, description=transaction.description, amount=-amount_to * negative_direction)

        serializer = CreateTransactionSerializer(transaction)

        from rest_framework.renderers import JSONRenderer
        data = JSONRenderer().render(serializer.data)
        return Response(data, status=status.HTTP_201_CREATED, headers=headers)

此错误与序列化无关。它来自最后一行,您发送给响应的参数之一是
status=status.HTTP\u 201\u CREATED
。但是
status
下面是您在方法开头定义的内容:
status=request.data['status']
。所以它是一个字符串,没有一个名为that的属性


很明显,您是想引用从模块顶部的
rest\u framework
导入的
status
模块。但是字符串变量隐藏了这一点。您需要更改变量的名称。

此错误与序列化无关。它来自最后一行,您发送给响应的参数之一是
status=status.HTTP\u 201\u CREATED
。但是
status
下面是您在方法开头定义的内容:
status=request.data['status']
。所以它是一个字符串,没有一个名为that的属性


很明显,您是想引用从模块顶部的
rest\u framework
导入的
status
模块。但是字符串变量隐藏了这一点。您需要更改变量的名称。

您正在用此行覆盖rest\u框架。状态:

status=request.data['status']

您需要将此变量重命名为其他变量才能使用


status.HTTP\u 201\u从
rest\u框架
库创建
您正在覆盖
rest\u框架。status
使用以下行:

status=request.data['status']

您需要将此变量重命名为其他变量才能使用


status.HTTP\u 201\u从
rest\u框架
库创建
已修复。我真的同意这和序列化无关。下次我应该小心声明可能与rest\u framework.response import response中的
冲突的变量,如
status
Fixed。我真的同意这和序列化无关。下次我应该小心声明可能与rest\u framework.response import response中的
冲突的变量,如
status