不支持的操作数类型 - =:'str'和'int'

时间:2017-03-17 15:28:11

标签: python django

我有这个错误,你能帮帮我吗?您需要从“Articulo”模型的“Pedido” - “stock”模型中减去“数量”值,然后保存库存结果。

排队:articulo.stock - = pedido.cantidad

 def Update_stock(request, id_pedido, cod_experto):
 if request.method == 'GET':
   pedido = Pedido.objects.get(id=id_pedido)
   articulo = Articulo.objects.get(pk=cod_experto)
   articulo.stock -= pedido.cantidad
   articulo.save()
 return render(request, 'admindata.html', {'pedido':pedido, 'articulo':articulo})

models.py:

class Pedido(models.Model):
articulo       = models.ForeignKey('Articulo')
fecha_pedido   = models.DateTimeField(auto_now_add=True,null=True, blank=True)
cantidad       = models.IntegerField(blank=True)



def __str__(self):
    return '{}'.format(self.especialidad, self.articulo, self.cantidad, self.estado)


class Articulo(models.Model):
cod_experto = models.CharField(max_length=999, primary_key=True, blank=True)
nombre      = models.CharField(max_length=999, blank=True)
on_delete=models.CASCADE)
stock       = models.CharField(max_length=999, blank=True)

1 个答案:

答案 0 :(得分:1)

错误消息表示无意中为articulo.stock分配了 str 而不是数字。

在模型中, stock 被定义为CharField。可能它应该是某种数字类型,例如IntegerField()