Предварительная выборка связанных, выборка связанных по сквозной модели в форме администратора 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
Вернуться на верх