diff --git a/StockSeeker/models.py b/StockSeeker/models.py index 34d9444..0469769 100644 --- a/StockSeeker/models.py +++ b/StockSeeker/models.py @@ -11,7 +11,7 @@ class Product(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="products") stock_limit = models.IntegerField(null=True, blank=True) alert_enabled = models.BooleanField(default=False) - + image = models.CharField(null=True, blank=True) @property def is_stock_low(self): return self.alert_enabled and self.stock_limit is not None and self.quantity < self.stock_limit diff --git a/StockSeeker/serializers.py b/StockSeeker/serializers.py index b015ace..05a8509 100644 --- a/StockSeeker/serializers.py +++ b/StockSeeker/serializers.py @@ -44,8 +44,13 @@ class ProductSerializer(serializers.ModelSerializer): class Meta: model = Product - fields = ["id", "name", "description", "quantity", "creation_date", "modification_date", "user","stock_limit","alert_enabled","is_stock_low"] - + fields = ["id", "name", "description", "quantity", "creation_date", "modification_date", "user","stock_limit","alert_enabled","is_stock_low","image"] + + def validate_quantity(self, value): + if value < 0: + raise serializers.ValidationError("La quantité ne peut pas être négative.") + return value + def get_is_stock_low(self, obj): if not isinstance(obj, Product): return None diff --git a/StockSeeker/views.py b/StockSeeker/views.py index 3990934..68e7700 100644 --- a/StockSeeker/views.py +++ b/StockSeeker/views.py @@ -47,14 +47,9 @@ class ProductView(viewsets.ModelViewSet): serializer_class = ProductSerializer queryset = Product.objects.all() - def perform_create(self, request): - if 'quantity' not in request.data or request.data.get('quantity') is None: - return Response({"quantity": ["give a quantity"]}, status=status.HTTP_400_BAD_REQUEST) - serializers = self.get_serializer(data=request.data) - serializers.is_valid(raise_exception=True) - serializers.save(user=self.request.user) - return Response(serializers.data, status=status.HTTP_201_CREATED) - + def perform_create(self, serializer): + serializer.save(user=self.request.user) + def get_queryset(self): return Product.objects.filter(user_id=self.request.user)