KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
The ORM in Django lets us easily annotate (add fields to) querysets based on related data, hwoever I can't find a way to get multiple annotations for different filtered subsets of related data. This is being asked in relation to django-helpdesk , an open-source Django-powered trouble-ticket tracker. I need to have data pivoted like this for charting and reporting purposes Consider these models: 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) And this dataset: Queues: ID | Name ---+------------------------------ 1 | Product Information Requests 2 | Service Requests Issues: ID | Queue | Status ---+-------+--------- 1 | 1 | open 2 | 1 | open 3 | 1 | closed 4 | 2 | open 5 | 2 | closed 6 | 2 | closed 7 | 2 | closed I would like to see an annotation/aggregate look something like this: Queue ID | Name | open | closed ---------+-------------------------------+------+-------- 1 | Product Information Requests | 2 | 1 2 | Service Requests | 1 | 3 This is basically a crosstab or pivot table, in Excel parlance. I am currently building this output using some custom SQL queries, however if I can move to using the Django ORM I can more easily filter the data dynamically without doing dodgy insertion of WHERE clauses in my SQL. For "bonus points": How would one do this where the pivot field ( status in the example above) was a date, and we wan
Tags (comma-separated)
Save Edits
Cancel