Claude-skill-registry 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.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/django-api-debugger" ~/.claude/skills/majiayu000-claude-skill-registry-django-api-debugger && rm -rf "$T"
manifest: skills/data/django-api-debugger/SKILL.md
source content

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

# 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