0
I am creating an application for stock control and am having the following difficulty. When I enter a [product input] the input quantity must be added to the stock quantity of [product]. There is the possibility to update [Product] in the create method of [product input]?
serializer de [product]:
from rest_framework.serializers import ModelSerializer
from produto.models import Produto
class ProdutoSerializer(ModelSerializer):
class Meta:
model = Produto
fields = ('id', 'nome', 'descricao', 'categoria', 'quantidade_estoque', 'imagem')
serializer de [product input]:
from rest_framework.serializers import Modelserializer from estoque_entrada.models import Estoqueentrada
class EstoqueEntradaSerializer(ModelSerializer):
class Meta:
model = EstoqueEntrada
fields = ('id', 'produto', 'data', 'quantidade_entrada', 'valor_pago', 'usuario')
viewset of [product input] with what I tried to do:
from rest_framework.viewsets import ModelViewSet
from rest_framework.response import Response
from rest_framework import status
from estoque_entrada.models import EstoqueEntrada
from produto.models import Produto
from produto.api.serializers import ProdutoSerializer
from .serializers import EstoqueEntradaSerializer
class EstoqueEntradaViewSet(ModelViewSet):
queryset = EstoqueEntrada.objects.all()
serializer_class = EstoqueEntradaSerializer
def create(self, request, *args, **kwargs):
produto_queryset = Produto.objects.filter(id=request.data['produto'])
quantidade_entrada = int(request.data['quantidade_entrada'])
quantidade_produto = produto_queryset[0].quantidade_estoque
quantidade_produto = quantidade_produto + quantidade_entrada
produto_serializer = ProdutoSerializer(produto_queryset, many=True)
produto_data = produto_serializer.data
produto_data[0]['quantidade_estoque'] = quantidade_produto
# produto_serializer.is_valid(produto_data)
# produto_serializer.update(produto_data)
entrada_serializer = self.get_serializer(data=request.data)
entrada_serializer.is_valid(raise_exception=True)
self.perform_create(entrada_serializer)
headers = self.get_success_headers(entrada_serializer.data)
return Response(entrada_serializer.data, status=status.HTTP_201_CREATED, headers=headers)
It seems to me that the problem is that you’re just Serializing, no updating the instance of
Produto
that you bred.– Rfroes87