Changeset 17ed1da for music/views.py
- Timestamp:
- 04/28/25 17:55:59 (3 weeks ago)
- Branches:
- master
- Children:
- 611686e
- Parents:
- bfca48b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
music/views.py
rbfca48b r17ed1da 84 84 85 85 86 87 86 def media_type_percentage(request): 88 87 with connection.cursor() as cursor: … … 103 102 104 103 return render(request, 'most_listened_genre_per_customer.html', {'data': data}) 104 105 106 def genres_per_customer(request): 107 customers = Customer.objects.all() 108 selected_customer_id = request.GET.get('customer_id') 109 data = [] 110 111 if selected_customer_id: 112 query = """ 113 SELECT c.first_name as first_name, c.last_name as last_name, g.name as genre, COUNT(tr.track_id) as track_count 114 FROM customer c 115 LEFT JOIN invoice i ON c.customer_id = i.customer_id 116 LEFT JOIN invoice_line il ON i.invoice_id = il.invoice_id 117 LEFT JOIN track tr ON il.track_id = tr.track_id 118 LEFT JOIN genre g ON tr.genre_id = g.genre_id 119 WHERE c.customer_id = %s 120 GROUP BY c.customer_id, c.first_name, c.last_name, g.genre_id, g.name 121 ORDER BY c.first_name 122 """ 123 124 with connection.cursor() as cursor: 125 cursor.execute(query, [selected_customer_id]) 126 rows = cursor.fetchall() 127 data = [{'first_name': row[0], 'last_name': row[1], 'genre': row[2], 'track_count': row[3]} for row in rows] 128 129 130 return render(request, 'genres_per_customer.html', { 131 'customers': customers, 132 'data': data, 133 'selected_customer_id': selected_customer_id, 134 })
Note:
See TracChangeset
for help on using the changeset viewer.