Есть модуль UserTask в которой есть очень тяжелые поля и они тормозят запрос, как можно убрать их из запроса для Django Admin.
Они не выводятся на страницу, но Django использует примерно такой запрос:
SELECT * FROM UserTask;
А нужно:
SELECT id, name, is_user FROM UserTask;
P.S. Нужно убрать их именно в админке, вот регистрация модели:
class UserTaskAdmin(admin.ModelAdmin):
list_filter = ('id', 'name')
list_display = ('id', 'name')
admin.site.register(UserTask, UserTaskAdmin)
кривой перевод на английский
Ответ
Вы можете переопределить get_queryset() и использовать only() метод:
class UserTaskAdmin(admin.ModelAdmin):
list_filter = ('id', 'name')
list_display = ('id', 'name')
def get_queryset(self, request):
return self.model.objects.only('id', 'name')
Немного изменил оригинал, там использовался UserTask.objects.only('id', 'name'), за места self.model.objects.only('id', 'name'), что ограничивало повторное использования кода с другими моделями.
Оригинал от @neverwalkaloner
Комментариев нет:
Отправить комментарий