Datos dinámicos y anotaciones complejas en Django ORM

El ORM en Django nos permite anotar fácilmente (agregar campos a) conjuntos de consultas basados en datos relacionados, sin embargo, no puedo encontrar una manera de obtener múltiples anotaciones para diferentes subconjuntos filtrados de datos relacionados.

Esto se pregunta en relación con django-helpdesk, un rastreador de tickets de problemas de código abierto impulsado por Django. Necesito tener datos pivotados de esta manera para gráficos y reportes

Considere estos modelos:

CHOICE_LIST = (
    ('open', 'Open'),
    ('closed', 'Closed'),
)

class Queue(models.model):
    name = models.CharField(max_length=40)

class Issue(models.Model):
    subject = models.CharField(max_length=40)
    queue = models.ForeignKey(Queue)
    status = models.CharField(max_length=10, choices=CHOICE_LIST)

Y este conjunto de datos:

Queues:

ID | Name
---+------------------------------
1  | Product Information Requests
2  | Service Requests

Cuestiones

ID | Queue | Status
---+-------+---------
1  | 1     | open
2  | 1     | open
3  | 1     | closed
4  | 2     | open
5  | 2     | closed
6  | 2     | closed
7  | 2     | closed

Me gustaría ver una anotación / agregado similar a esto:

Queue ID | Name                          | open | closed
---------+-------------------------------+------+--------
1        | Product Information Requests  | 2    | 1
2        | Service Requests              | 1    | 3

Esta es básicamente una tabla cruzada o tabla dinámica, en lenguaje Excel. Actualmente estoy construyendo esta salida usando algunas consultas SQL personalizadas, sin embargo, si puedo pasar a usar el Django ORM, puedo filtrar más fácilmente los datos dinámicamente sin hacer una inserción dudosa de las cláusulas WHERE en mi SQL.

Para "puntos de bonificación": ¿Cómo se haría esto donde el campo pivote status en el ejemplo anterior) era una fecha, y queríamos que las columnas fueran meses / semanas / trimestres / días?

Respuestas a la pregunta(2)

Su respuesta a la pregunta