2017-03-17 19 views
0

私はこのエラーがあります。 "Articulo"モデルの "Pedido" - "stock"モデルから "quantity"値を差し引いて、在庫結果を保存する必要があります。行の- =: 'str'と 'int'のサポートされていないオペランドタイプ

: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

'articulo.stock'はおそらく文字列です。 –

+0

@ Jean-FrançoisFabreが言っていること以外は何も追加できません。その明確な文字列、それはエラーメッセージ – WhatsThePoint

+0

で非常にありがとう! –

答えて

1

エラーメッセージがarticulo.stockが不注意STR代わりの番号が割り当てられていることを意味。

モデルでは、ストックCharFieldと定義されています。おそらく、それはIntegerField()のような数値型でなければなりません。

関連する問題