Django admin: подсчет вхождений в поле и сортировка по другому полю

У меня следующая модель:

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)

событие имеет 3 возможных значения (A, B, C)

Выборочные значения:

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

Желаемый результат в django admin:

Показать, сколько раз человек посетил каждое мероприятие, и список должен быть отсортирован по метке времени, когда он посетил мероприятие А. Должны быть показаны только те люди, которые посетили мероприятие А.

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

Как это можно сделать наиболее элегантным способом в django admin? Кодовая база, с которой я имею дело, работает на django 1.11

Вернуться на верх