Переопределение Django Admin get_queryset с raw () приводит к DatabaseError - PullRequest
0 голосов
/ 24 марта 2020

Чтобы ускорить мою страницу администратора, я решил переопределить свой get_queryset() необработанным запросом, однако это приводит к:

Database error: Something’s wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user.

Есть ли какой-то шаг I ' м отсутствует? Я уже подтвердил, что запрос работает в PSQL, поэтому я не вижу, что происходит не так. Я попытался сократить это до следующего, но это все еще ошибки.

def get_queryset(self, request):
    return MyObject.objects.raw('SELECT * FROM myapp_myobject')

1 Ответ

0 голосов
/ 24 марта 2020

Проблема заключается в том, что raw возвращает не экземпляр QuerySet , а RawQuerySet , в котором реализованы протокол и представление итератора, но нет других методов, используемых Django просмотров под капотом.

Я советую использовать extra вместо этого или просто выбрать столбец ID только из необработанного запроса, а затем нажать другой, например MyObject.objects.filter(id__in=your_ids_list_from_raw)

...