30 lines
760 B
Python
30 lines
760 B
Python
from ninja import Router, Query
|
|
from resumes.models import ResumeBasic
|
|
from resumes.api.schemas import ResumeBasicOut, PaginatedResumes
|
|
from typing import Optional
|
|
|
|
router = Router(tags=["简历"])
|
|
|
|
@router.get("/", response=PaginatedResumes)
|
|
def list_resumes(
|
|
request,
|
|
job_status: Optional[str] = Query(None),
|
|
age: Optional[int] = Query(None),
|
|
name: Optional[str] = Query(None),
|
|
limit: int = 10,
|
|
offset: int = 0
|
|
):
|
|
qs = ResumeBasic.objects.all()
|
|
|
|
if job_status:
|
|
qs = qs.filter(job_status=job_status)
|
|
if age:
|
|
qs = qs.filter(age=age)
|
|
if name:
|
|
qs = qs.filter(name__icontains=name)
|
|
|
|
total = qs.count()
|
|
results = qs[offset:offset + limit]
|
|
|
|
return {"count": total, "items": list(results)}
|