如何在Django REST API的类视图中打印原始查询

0 投票
1 回答
3845 浏览
提问于 2025-04-18 16:30

我正在做一个 Django 的 REST API,使用的是基于类的视图,比如:

class UserViewSet(viewsets.ModelViewSet):

   queryset = Users.objects.filter(user_type_id=3)

   def get_queryset(self):
       queryset = self.queryset

       city = self.request.QUERY_PARAMS.get('city', '') 
       if city!="":
            queryset = queryset.filter(work_address__city__icontains=city).distinct()

       return queryset

然后在 url.py 文件中:

router.register(r'api/users', views.UsersViewSet)

我想在 UserViewSet 中打印出原始的 MySQL 查询,这样我就能看到具体的查询内容。有没有什么方法可以在调用 "api/users" 时查看这个原始查询呢?

1 个回答

3

你可以选择安装 Django 调试工具栏:

https://pypi.python.org/pypi/django-debug-toolbar

或者使用:

# at the top of the file
from django.db import connection

# and put this before return queryset
connection.queries

来在日志中输出 SQL 查询。

撰写回答