2017-02-23 88 views
-1

我已經DateTimeField字段Django的:獲取日期明智計數DateTimeField字段

class Foo(models.Model): 
    id = models.AutoField(primary_key=True, db_column='status_id') 
    date_field = models.DateTimeField(default=django.utils.timezone.now) 
    f1 = models.TextField(blank=True, null=True) 
    f2 = models.SmallIntegerField() 

我想在約會中DateTimeField字段應用過濾器,並得到輸出在做一些查詢後,格式如下一類:

F2 F1 DATE_FIELD
54 2017年2月1日4
53 2017年2月1日6
52 2017年2月1日2
51 2017年2月1日1
48 2017年2月1日5
47 2017年2月1日2
46 2017年2月1日3
45 2017年2月1日2
41 2017年2月1日1
38 2017- 3月2日至一日
32 2017年2月1日17
30 2017年2月1日3
29 2017年2月1日4
18 2017年2月1日4
14 2017年2月1日5
13 2017-02-01 2

回答

0

這可能會爲你工作: -

from django.db.models import Count 
Foo.objects.values('f2','date_field','f1').annotate(dcount=Count('date_field') 
+0

我的日期字段是datetimefield,我希望過濾器的基準日期不是datetime。 –

0

我覺得你的問題還不是很清楚。但是,從您的示例中我看到該列表已在您的f2字段中訂購。要過濾您的order_by('field')。要過濾字段,您可以在queryset上使用.filter()。要過濾,例如今天,我們可以通過datetime庫中的datetime.now()。要格式化日期,您可以使用date/dateTime-object.strftime('<format>')。但是,請澄清你的問題,你的實際問題對我們來說是一個猜測。

from datetime import datetime 

today = datetime.now() 
foos = Foo.objects.filter(date_field=today) \ 
     .order_by('-f2') \ 
     .annotate(date_count=Count('date_field')) 

for foo in foos: 
    date_formatted = foo.date_field.strftime("%Y-%m-%d") 
    print foo.f2, date_formatted, foo.date_count 
相關問題