Django admin: filter_horizontal с пользовательским поиском/фильтром результатов

У меня есть простая модель с ManyToManyField.

class Meeting(models.Model):
    place = models.CharField()
    date = models.DateField()
    persons = models.ManyToManyField(Person)

Модель человека содержит основную информацию о человеке.

class Person(models.Model):
    login = models.CharField(unique=True)
    first_name = models.CharField()
    last_name = models.CharField()

    def __str__(self):
        return self.login

В моем классе MeetingAdmin(ModelAdmin) у меня есть filter_horizontal('persons',), который используется для добавления нескольких человек при создании нового объекта Meeting. Это работает совершенно нормально. В левом меню отображается список всех людей (фильтрация по login).

Как вы, возможно, знаете, filter_horizontal содержит окно поиска в верхней части левого меню. Примеры

Я также хотел бы иметь возможность фильтровать людей по их имени и фамилии. Например, если есть человек с полями (login='mylogin', first_name='John', last_name='Smith') и я набираю в поисковой строке 'Jo' или 'Smi', то этот человек отображается как результат поиска, и т.д. 'mylogin', так как поле login является представлением модели Person.

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