Есть 2 модели:
class Person:
name = models.CharField()
surname = models.CharField()
some_id = models.CharField()
class Player:
person = models.ForeignKey(Person)
some_field = models.CharField()
В админке, на странице записей для Player я хочу осуществить поиск по Person (по любому из указанных полей). Нашел в документации, что для этого есть метод get_search_results, но работает он только для своей модели.
Вот пример кода из админки (слегка измененный), который я хочу настроить на поиск по другой модели, а не по себе (self.model).
class PlayerAdmin(admin.ModelAdmin):
def get_search_results(self, request, queryset, search_term):
queryset, use_distinct = super(PlayerAdmin, self).get_search_results(request, queryset, search_term)
try:
print(search_term)
except ValueError:
pass
else:
queryset |= Person.objects.filter(some_id=search_term) # здесь указал другую модель
return queryset, use_distinct
На что я получаю:
Cannot combine queries on two different base models.
Подскажите, как это делается? С ООП пока не очень силен. Заранее спасибо!