Manager对象没有属性' save'

时间:2017-11-17 04:40:07

标签: python django django-rest-framework

在我的serializers.py中,我有一个OrderCreateSerializer:

class OrderCreateSerializer(ModelSerializer):

    data_params = serializers.DictField()  # 根据产品数据模型不同而异

    class Meta:
        model = Order
        fields = (
            "product_describe",  # 产品描述 (购买xx产品 + 参数)
            "billing_type", # 计费类型 ("包年包月")
            "data_params",  # 数据
        )
    def create(self, validated_data):

        request = self.context.get("request")
        if request and hasattr(request, "user"):
            user = request.user

        validated_data["order_num"] = generateOrderNum(userid=user.id)
        validated_data["order_status"] = "未支付"
        validated_data["order_status"] = "未支付"

        data_dic = validated_data.pop("data_params") #

        # data_dic["data"]["profile"]

        validated_data["buytime"] = data_dic["data"]["buytime"]
        validated_data["count"] = data_dic["data"]["count"]
        validated_data["paytype"] = ""   

        validated_data["cost"] = ""  
        validated_data["account"] = user.account   

        return Order.objects.save(**validated_data)  # this is the line 57

当我保存validated_data时,它会报告以下错误:

enter image description here

  

经理对象没有属性'保存'

我的订单模型如下:其中有许多字段:

class Order(models.Model):
    """
    订单
    """
    order_num = models.CharField(max_length=128, unique=True)  # 订单编号
    order_status = models.CharField(max_length=12)  # 订单状态  "未支付", "已支付,未完成", "已完成", "已经删除","其他"
    product_describe = models.TextField()  # 产品描述
    billing_type = models.CharField(max_length=16)  # 计费类型
    buytime = models.CharField(max_length=16)  # 比如:1月  永久
    count = models.IntegerField()  # 购买数量
    paytype = models.CharField(max_length=16)  # 支付方式(支付包,微信,xxx)
    cost = models.DecimalField(max_digits=8, decimal_places=2, default=0.00)  # 费用(需要花费多少钱)
    account = models.ForeignKey(to=Account) # 所属账户

    ctime = models.DateTimeField(auto_now_add=True)  # 创建时间
    uptime = models.DateTimeField(auto_now=True)  # 更新时间

    def __str__(self):
        return self.product_describe
    def __unicode__(self):
        return self.product_describe

我不知道为什么这里有Manager对象。

2 个答案:

答案 0 :(得分:0)

Order.objects是Manager类的一个实例。 The save method is a method of the model class

尝试:Order(**validated_data).save()

答案 1 :(得分:0)

您正在呼叫管理员保存(即objects

return Order.objects.save(**validated_data)

你打电话给模特保存。

我假设您正在尝试创建模型,在这种情况下您需要create

return Order.objects.create(**validated_data)