我想在包含日期的相關模型中的查詢集中包含月份編號。這是我的嘗試:如何在django查詢集中獲取日期的月份
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')
我需要它在querset結果作爲我使用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}
爲什麼你在這裏做一個總和? OrderItem.objects.all()。annotate(order_month = Sum('order__payment_date__month'))[0] .__ dict__ –
什麼是「付款月數」甚至應該是什麼意思? –
由於月是一個整數,我認爲我可以很聰明,並使用註釋來添加此字段。可悲的不是! – PhoebeB