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.py for URL pattern
  • Find the corresponding view/viewset

2. Check the Serializer

  • Verify fields are included
  • Check read_only and write_only settings
  • Look for custom to_representation or to_internal_value
  • Verify nested serializers

3. Check the View

  • Verify queryset and get_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_CLASS in settings
  • Verify page_size parameter
  • Check for next/previous URLs 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?

Be as detailed as possible for better results