Smart Segments
How to migrate
Structure
Performance
Example
from app.models import Product
from django.db.models import Q
from django_forest.utils.collection import Collection
class ProductsForest(Collection):
def load(self):
self.segments = [
{
"name": "best_sellers",
"where": self.get_best_sellers
}
]
def get_best_sellers(self):
products = Product.objects.raw("""
SELECT products.id, COUNT(orders.*)
FROM products
JOIN orders ON orders.product_id = products.id
GROUP BY products.id
ORDER BY count DESC
LIMIT 5;"""
)
return Q(id__in=[p.id for p in products])Last updated