django admin: counting occurrences in a field and sorting by another

Viewed 24

I have the following model:

class Random(models.Model):
  person = models.TextField(blank=True, null=True)
  event = models.TextField(blank=True, null=True)
  event_date = models.DateTimeField(blank=True, null=True)

event has 3 possible values (A, B, C)

Sample Values are:

person    event        event_date
elton      A            1 Jan 2022
john       B            2 Jan 2022
elton      B            3 Jan 2022
elvis      B            4 Jan 2022
john       A            5 Jan 2022
elvis      B            6 Jan 2022
john       A            11 Jan 2022

Desired outcome in django admin:

Show how many times a person attended each event and the list must be sorted by the timestamp of when they attended event A. Only the persons who attended event A should be shown.

person       event-count-A         event-count-B         event-count-C        latest_A_event
-------      -------------         -------------         -------------        -----------
john               2                     1                     0             11 Jan 2022  
elton              1                     1                     0              1 Jan 2022

How can this be done is the most elegant manner in django admin? The codebase I am dealing with runs on django 1.11

0 Answers
Related