# -*- coding: utf-8 -*- from datetime import date, timedelta from django.core.management.base import BaseCommand from expobanner.models import Log, LogStat, Banner from django.conf import settings class Command(BaseCommand): def handle(self, *args, **options): prev_day = date.today() - timedelta(days=1) for banner in Banner.objects.select_related('group').filter(): try: logstat = LogStat.objects.get(banner=banner, group=banner.group, date=prev_day) except LogStat.DoesNotExist: logstat = LogStat(banner=banner, group=banner.group, date=prev_day) views = Log.objects.filter(datetime__startswith=prev_day, banner=banner, group=banner.group, type=1).count() clicks = Log.objects.filter(datetime__startswith=prev_day, banner=banner, group=banner.group, type=2).count() unique_views = Log.objects.filter(datetime__startswith=prev_day, banner=banner, group=banner.group, type=1).values('ip').distinct().count() unique_clicks = Log.objects.filter(datetime__startswith=prev_day, banner=banner, group=banner.group, type=2).values('ip').distinct().count() if not logstat.click or logstat.click < clicks: logstat.click = clicks if not logstat.view or logstat.view < views: logstat.view = views if not logstat.unique_click or logstat.unique_click < unique_clicks: logstat.unique_click = unique_clicks if not logstat.unique_view or logstat.unique_view < unique_views: logstat.unique_view = unique_views logstat.save()