Source code for nkdsu.apps.vote.management.commands.popular_tracks

from collections import Counter

from django.core.management.base import BaseCommand

from ...models import Track


[docs] class Command(BaseCommand):
[docs] def counter(self, items, func): c = Counter() for item in items: c[item] = func(item) return c
[docs] def handle(self, **options): print('\nby vote count, total:') for track, count in self.counter( Track.objects.all(), lambda t: t.vote_set.all().count(), ).most_common(50): print('{:>5}: {}'.format(count, track)) print('\nby play count, total:') for track, count in self.counter( Track.objects.all(), lambda t: t.play_set.all().count(), ).most_common(50): print('{:>5}: {}'.format(count, track))