Предварительная выборка связанных, выборка связанных по сквозной модели в форме администратора Django
Несколько дублирующихся запросов в Django Admin Form. У меня есть модели, похожие на приведенные ниже примеры. Я делаю инлайн в моей админке django и я объявил prefetch related, но все равно это дает много дублирующих запросов на поля внешнего ключа, присутствующие в инлайн модели. Я пробовал
.prefecth_related('b1','b1__a') и т.д... не удалось уменьшить количество запросов, и страница загружается очень медленно из-за количества выполняемых запросов
class A(models.Model):
name = models.CharField(max_length=10)
b1 = models.ManyToManyField(B)
class B(models.Model):
name = models.CharField(max_length=10)
class C(models.Model):
name = models.CharField(max_length=10)
class D(models.Model):
name = models.CharField(max_length=10)
class E(models.Model):
a = models.ForeignKey(A, on_delete=models.DO_NOTHING)
b = models.ForeignKey(B, on_delete=models.DO_NOTHING)
c = models.ForeignKey(C, on_delete=models.DO_NOTHING)
d = models.ForeignKey(D, on_delete=models.DO_NOTHING)
class EInline(admin.TabularInline):
model = E
extra = 0
can_delete = False
show_change_link = False
def get_queryset(self, request):
queryset = super(EInline, self).get_queryset(request).select_related(
'a', 'b', 'c')
return queryset
class Aadmin(admin.ModelAdmin):
inlines = [EInline,]
def get_queryset(self, request):
queryset = super(Aadmin, self).get_queryset(request)
queryset = queryset.prefetch_related('b1')
return queryset