2017-11-17 5 views
0

'保存' 何の属性を持っていない:Managerオブジェクトは、私がOrderCreateSerializerを持っている私のserializers.pyで

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

Manager object has no attribute 'save'

マイオーダーモデルは以下のようになります。

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 

なぜここにマネージャオブジェクトがあるのか​​わかりません。

答えて

0

あなたがモデルにsaveを呼び出すマネージャの[保存(すなわち、objects

return Order.objects.save(**validated_data) 

を呼んでいます。

モデルを作成しようとしているとします。この場合、createが必要です。

return Order.objects.create(**validated_data) 
関連する問題