def soft_delete(self, user=None): if self.status == ShipmentStatus.DELETED: return self.status = ShipmentStatus.DELETED self.save(update_fields=["status"]) for product_id in self.products.values_list("product_id", flat=True): self.supplier.module.update_stock(product_id=product_id) self.order.update_shipping_status() shipment_deleted.send(sender=type(self), shipment=self)