Django的Calcul时间

时间:2018-11-26 07:29:33

标签: django time aggregate

我有以下代码:

mAudioManager.abandonAudioFocus(this);

total_hours_week重新调整当前错误:

由于日期/时间保存为文本,因此不能在sqlite3中的日期/时间字段上使用求和,平均,标准差和方差聚合。

您知道如何解决吗?

每笔预付款

1 个答案:

答案 0 :(得分:0)

您可以检查当前数据库引擎是否为sqlite3,并在需要时以编程方式计算注释:

from django.conf import settings


def index(request):
    db_engine = settings.DATABASES['default']['ENGINE']

    if db_engine = 'django.db.backends.sqlite3':
        total_hours_week = [] # Calculate annotation programmatically
    else:
        total_hours_week = Timesheet.objects.annotate(total_hours_per_week=Sum('working_hour')).filter(owner = request.user.pk,  week = datetime.datetime.now().isocalendar()[1])
    events_list = Timesheet.objects.filter(owner = request.user.pk, week = datetime.datetime.now().isocalendar()[1]).order_by('-working_hour')

    return render(request, "timesheet/index.html", {'events_list': events_list, 'total_hours_week': total_hours_week})

但是,如果您仅将sqlite3用于开发,并且需要大量时间聚合,我强烈建议您为开发环境设置PostgreSQL / MySql服务器,因为它可以节省大量时间,并且从长远来看头痛。