Agent skill
django-api-debugger
Debug Django REST Framework API issues including serializers, viewsets, permissions, pagination, filtering, and response formatting. Use when troubleshooting API endpoints, serialization errors, permission denials, or unexpected response data.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/django-api-debugger
SKILL.md
Django API Debugger
Analyzes and debugs Django REST Framework API issues in this project.
Project Context
- Backend: Django 5.x with Django REST Framework
- API base path:
/api/v1/ - Key apps:
core/projects,core/users,core/tools - Serializers located in:
*/serializers.py - Views located in:
*/views.py - URL routing:
*/urls.py
When to Use
- "API returning wrong data"
- "Serializer not including field"
- "Permission denied on endpoint"
- "Pagination not working"
- "Filter not applying"
- "API response format incorrect"
Debugging Approach
1. Identify the Endpoint
- Check
urls.pyfor URL pattern - Find the corresponding view/viewset
2. Check the Serializer
- Verify fields are included
- Check
read_onlyandwrite_onlysettings - Look for custom
to_representationorto_internal_value - Verify nested serializers
3. Check the View
- Verify
querysetandget_queryset() - Check
permission_classes - Look for custom
get_serializer_context() - Verify pagination settings
4. Common Issues
Missing fields in response:
- Field not in serializer's
fields - Field is
write_only=True - Property not defined on model
Permission errors:
- Missing or incorrect
permission_classes - User not authenticated
- Object-level permissions failing
Pagination issues:
- Check
DEFAULT_PAGINATION_CLASSin settings - Verify
page_sizeparameter - Check for
next/previousURLs in response
Key Files to Check
core/
├── projects/
│ ├── serializers.py # Project serializers
│ ├── views.py # Project viewsets
│ └── urls.py # Project URL patterns
├── users/
│ ├── serializers.py # User serializers
│ └── views.py # User viewsets
└── tools/
├── serializers.py # Tool serializers
└── views.py # Tool viewsets
Testing Tips
bash
# Test endpoint directly
docker compose exec web python manage.py shell
>>> from core.projects.models import Project
>>> Project.objects.first().__dict__
# Check serializer output
>>> from core.projects.serializers import ProjectSerializer
>>> ProjectSerializer(Project.objects.first()).data
Didn't find tool you were looking for?