python - 如果查询集,如何在 django 控制台中打印 api
问题描述
序列化程序.py
from rest_framework import serializers
from access.models import SeekerRegister
from .models import CandidateDetails,Social,CvDetails,KeySkills,CandidateCompanyDetails,CandidateEducationDetails,ContactInfo
class MainSeekerSerializer(serializers.ModelSerializer):
class Meta:
model = SeekerRegister
fields = ('contact_info',
'candidate_details','social',
'cv_details','key_skills',
'candidate_company_details',
'candidate_education_details',
'seeker_language',
'seeker_name','seeker_email',
'seeker_contact_no','verified')
depth = 1
视图.py
class AdvanceSearchViewSet(viewsets.ReadOnlyModelViewSet):
queryset = SeekerRegister.objects.all()
serializer_class = MainSeekerSerializer
def get_queryset(self):
queryset = SeekerRegister.objects.all()
if self.request.query_params.get('skills_any', None) is not None:
skills_any = self.request.query_params.get('skills_any', None).split(",")
else:
return JsonResponse({"code":401,"msg":"skills_any is required"})
if self.request.query_params.get('skills_must', None) is not None:
skills_must = self.request.query_params.get('skills_must', None).split(",")
else:
skills_must = None
if (skills_any is not None
and skills_must is None:
filters = Q(key_skills__skills__in=skills_any) & Q(key_skills__skills__in=skills_must)
else:
filters = Q(key_skills__skills__in=skills_any)
queryset = queryset.filter(filters)
print(queryset)
return queryset
结果在浏览器中:
[
{
"key_skills": [
{
"id": 1,
"skills": "python",
"versions": "3.600",
"experience": "2.000",
"user": 3
},
{
"id": 4,
"skills": "angular",
"versions": "3.600",
"experience": null,
"user": 3
},
{
"id": 5,
"skills": "java",
"versions": "16.060",
"experience": null,
"user": 3
}
]
}
]
在控制台中,当我打印查询集时,它即将到来 无论我在浏览器中获得什么,我如何在控制台中获得 api。
因为我有编辑字典的技能。
请看一看。
我有分片序列化程序和查看文件。
有没有办法修改api。
解决方案
在 api 中检查结果或控制台的可能解决方案之一是覆盖您的视图集的列表端点并在那里打印/控制台。
在您的 AdvanceSearchViewSet 中添加此函数。
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(queryset, many=True)
// print here
print('response', serializer.data)
return Response(serializer.data)
推荐阅读
- couchbase-java-api - Couchbase 2.5 SDK Java 元类型问题
- javascript - 从 ReactJS 中的 .map 函数访问类方法
- c# - C# 在循环中用值填充数组
- python - 复数/分支割的自变量的数值稳定性
- java - 如何获取一分钟处理窗口的最新记录
- javascript - 为什么当父元素的宽度发生变化时子元素的宽度会发生变化?
- x11 - 如何强制一个设备的所有事件由一个窗口处理,同时允许所有其他设备的所有其他事件正常处理?
- javascript - 为什么使用原型添加新方法不能按预期工作
- python-3.x - 文本情感检测
- sorting - 在 Jekyll 中按“最后一个”排序不起作用?反向排序等