Я хотел бы создать пятерку лучших продавцов продуктов в каждом месяце.о annotate django
Я слышал, что аннотации должны использоваться для этого случая, но я не знаю, как его использовать.
Будете ли вы любезны, чтобы помочь мне?
Я хотел бы создать пятерку лучших продавцов продуктов в каждом месяце.о annotate django
Я слышал, что аннотации должны использоваться для этого случая, но я не знаю, как его использовать.
Будете ли вы любезны, чтобы помочь мне?
Вам необходимо предоставить гораздо больше информации, прежде чем кто-либо сможет предоставить вам полезный ответ. Опишите, что вы знаете, что вы пробовали, подробно расскажите о том, чего вы надеетесь достичь.
В то же время, вы можете узнать о функции annotate()
django и посмотреть несколько примеров, прочитав aggregation documentation для django.
аннотация не является единственным способом сделать это. Вы также можете использовать агрегацию extra
, хотя она может быть не очень эффективной, и это будет основываться на sql, специфичном для вашей базы данных. Этот подход не будет работать в App Engine, но должен быть в SQL-совместимой базе данных.
Например, скажем, вы имели Product
модель и SalesOrder
модель, где SalesOrder
модель имеет позицию для каждого product_id
order_date
и в нем.
top_products = Product.objects.extra(
select={'num_orders':'select count(product_id) from app_product where app_salesorder.order_date > thirty_days_ago and app_product.id = app_salesorder.product_id'})
.order_by('-num_orders')[:5]
Дайте нам свой текущий код. Если у вас его нет, то, скорее всего, вы ответите на свой вопрос в процессе его написания. – AdamKG