用 raw() 覆盖 Django Admin get_queryset 导致 DatabaseError
Overriding Django Admin get_queryset with raw() results in DatabaseError
为了加快我的管理页面的速度,我决定用原始查询覆盖我的 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.
我是否遗漏了某些步骤?我已经确认该查询在 PSQL 中有效,所以我看不出出了什么问题。我已经尝试将其缩减为以下内容,但仍然出错。
def get_queryset(self, request):
return MyObject.objects.raw('SELECT * FROM myapp_myobject')
问题是 raw
return 不是 QuerySet instance but a RawQuerySet 实现了迭代器协议和表示但没有 Django 视图在引擎盖。
我建议使用 extra 代替,或者仅使用原始查询中的 select ID 列,然后点击另一个 MyObject.objects.filter(id__in=your_ids_list_from_raw)
为了加快我的管理页面的速度,我决定用原始查询覆盖我的 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.
我是否遗漏了某些步骤?我已经确认该查询在 PSQL 中有效,所以我看不出出了什么问题。我已经尝试将其缩减为以下内容,但仍然出错。
def get_queryset(self, request):
return MyObject.objects.raw('SELECT * FROM myapp_myobject')
问题是 raw
return 不是 QuerySet instance but a RawQuerySet 实现了迭代器协议和表示但没有 Django 视图在引擎盖。
我建议使用 extra 代替,或者仅使用原始查询中的 select ID 列,然后点击另一个 MyObject.objects.filter(id__in=your_ids_list_from_raw)