serializers.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
views.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
}
]
}
]
В консоли, когда я печатаю queryset оно приходит
Как я могу получить API в консоли, что я получаю в браузере.
Поскольку я должен что-то отредактировать в навыках из словаря .
Пожалуйста, посмотрите.
У меня есть осколки сериализаторов и просмотр файла.
есть ли способ изменить API.