Как оптимизировать запросы в 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
Не работает.