如何在Django控制台中打印api而不是查询

2024-06-16 09:28:21 发布

您现在位置:Python中文网/ 问答频道 /正文

你知道吗序列化程序.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。你知道吗


Tags: keyselfnonegetisrequestanydetails
1条回答
网友
1楼 · 发布于 2024-06-16 09:28:21

其中一个可能的解决方案是在api end中检查result或console以覆盖viewset的list端点,并在那里打印/控制台。你知道吗

在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)

相关问题 更多 >