Админ Django очень медленно загружается из пользовательской модели OneToOne

Я думаю, что я делаю модель администратора неправильно, потому что она занимает около 30 секунд для загрузки, и я думаю, что это потому, что мои sql-запросы слишком неэффективны и могут создавать больше просмотров, чем нужно. Есть ли способ ускорить это?

class UserInformationAdmin(admin.ModelAdmin):
    list_display = (
        'user_username',
        'user_first_name',
        'user_last_name',
        'major'
    )

    @admin.display(description='user.username')
    def user_username(self, obj):
        try:
            return obj.user.username
        except Exception:
            return None

    @admin.display(description='user.first_name')
    def user_first_name(self, obj):
        try:
            return obj.user.first_name
        except Exception:
            return None

    @admin.display(description='user.last_name')
    def user_last_name(self, obj):
        return obj.user.last_name```

Из того, что я могу понять, имея

    list_select_related = True

преобразуйте запросы в select_related, которые намного быстрее. Вот конечный код, который, по сути, работал.

class UserInformationAdmin(admin.ModelAdmin):
    list_select_related = True
    
    list_display = (
        'user_username',
        'user_first_name',
        'user_last_name',
        'major'
    )

    @admin.display(description='user.username')
    def user_username(self, obj):
        try:
            return obj.user.username
        except Exception:
            return None

    @admin.display(description='user.first_name')
    def user_first_name(self, obj):
        try:
            return obj.user.first_name
        except Exception:
            return None

    @admin.display(description='user.last_name')
    def user_last_name(self, obj):
        return obj.user.last_name```
Вернуться на верх