Django analog for coalesce sum with dynamic range of selected fields

Hello!

I’m trying to figure out Django ORM query for SQL like this:

SELECT 
	collector_timetracking.project_id,
	COALESCE(SUM( CASE WHEN collector_timetracking.date = '2022-03-28' THEN collector_timetracking.time ELSE NULL END ), NULL ) AS 2022-03-28,
	COALESCE(SUM( CASE WHEN collector_timetracking.date = '2022-03-29' THEN collector_timetracking.time ELSE NULL END ), NULL ) AS 2022-03-29,
	COALESCE(SUM( CASE WHEN collector_timetracking.date = '2022-03-30' THEN collector_timetracking.time ELSE NULL END ), NULL ) AS 2022-03-30

FROM collector_timetracking
	INNER JOIN collector_employee
		ON (collector_timetracking.employee_id = collector_employee.id)

WHERE (collector_employee.user_id = '1' AND collector_timetracking.timeperiod_id = '4')
GROUP BY collector_timetracking.project_id

But I want to have an option to supply dynamic range of dates

For clarity, when you’re saying:

Does that mean you want the resultant query to have a variable number of CASE clauses, one for each date? Or are you looking for a single CASE clause for a range of dates?

want the resultant query to have a variable number of CASE clauses, one for each date

I mean this one