如何在Django REST API的类视图中打印原始查询
我正在做一个 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 查询。