Как оптимизировать запросы в django-admin? Слишком много sql-запросов из-за внешнего ключа

У меня есть модель продукта и категория:

class Category(models.Model):
    name = models.CharField(max_length=100, unique=True)

class Product(models.Model):
    category = models.ForeignKey(Category, on_delete=models.PROTECT)
    name = models.CharField(max_length=255)

В файле admin.py:

@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
    list_editable = ('name', 'category')

Когда я захожу на страницу администратора, там слишком много дублирующихся SQL-запросов, все они получают категории. Если я удалю категорию из list_editable, все дублирующиеся запросы исчезнут.

Я пытался сделать следующее:

def get_queryset(self, request):
    qs = super(ProductAdmin, self).get_queryset(request).select_related('category')
    return qs

Не работает.

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