Сокращение количества запросов в Django TabularInline Admin
У меня есть админка с 1 строкой в табличном инлайне. У меня есть пользовательский кверисет в
class ExtensionTabularInlineFormSet(BaseInlineFormSet):
def get_queryset(self) -> QuerySet[Extension]:
qs = super().get_queryset()
Это вызывается 20 раз для отображения одного ряда. Когда у вас больше рядов, он вызывается 20 раз на ряд (я думаю, но я сбился со счета).
Виновником является вызов этого метода:
def initial_form_count(self):
"""Return the number of forms that are required in this FormSet."""
if not self.is_bound:
return len(self.get_queryset())
return super().initial_form_count()
Решением было бы кэшировать это значение, но представления администратора слишком часто выглядят как синглтоны, чтобы это сработало. Как мне решить эту проблему?