Я хочу включить номер месяца в набор запросов, где дата находится в связанной модели. Вот что я попробовал:
OrderItem.objects.all().annotate(order_month=Sum('order__payment_date__month'))[0].__dict__
Join on field 'payment_date' not permitted. Did you misspell 'month' for the lookup type?
а потом я попробовал
OrderItem.objects.all().extra(select={'order_month': "order__payment_date__month"})
(1054, "Unknown column 'order__payment_date__month' in 'field list'")
OrderItem.objects.all().extra(select={'order_month': "order.payment_date"}).select_related('Order')
(1054, "Unknown column 'order.payment_date' in 'field list'")
Но это работает, поэтому нет проблем с order.payment_date
OrderItem.objects.all().values('id','order__payment_date').select_related('Order')
Мне нужно это в результате выполнения набора запросов, так как я использую набор запросов в Geraldo. Кто-нибудь знает, как я могу получить это?
ОТВЕТ состоял в том, что в дополнительном разделе вам нужно указать, что вы хотите, чтобы MySQL это понимал. В моем случае добавление приложения перед названием модели. В этом случае web_order.payment_date. Это сработало:
OrderItem.objects.all().extra(select={'order_month': "MONTH(web_order.payment_date)"}).select_related('order')[0].__dict__
{'product_id': None, 'order_id': 1L, 'price': Decimal("1.00"), 'order_month': 7L, 'id': 1L}