2
0

views.py 714 B

1234567891011121314151617181920
  1. from django.db.models import Count, Q
  2. from django.http import JsonResponse
  3. def channel_videos_distribution(request, playlist_id):
  4. labels = []
  5. data = []
  6. playlist_items = request.user.playlists.get(playlist_id=playlist_id).playlist_items.all()
  7. queryset = playlist_items.filter(Q(video__is_unavailable_on_yt=False) & Q(video__was_deleted_on_yt=False)).values('video__channel_name').annotate(channel_videos_count=Count('video_position')).order_by(
  8. '-channel_videos_count')
  9. for entry in queryset:
  10. labels.append(entry['video__channel_name'])
  11. data.append(entry['channel_videos_count'])
  12. return JsonResponse(data={
  13. 'labels': labels,
  14. 'data': data,
  15. })