Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
jeffallan avatar

Django Expert

  • 3k installs
  • 10.8k repo stars
  • Updated May 20, 2026
  • jeffallan/claude-skills

django-expert is an agent skill that guides Django 5.0 and Django REST Framework implementation with indexed models, ORM optimization, serializers, viewsets, JWT auth, and APITestCase coverage.

About

django-expert is a jeffallan/claude-skills guide for Django and Django REST Framework backend patterns with production-ready authentication and authorization. It documents SimpleJWT setup in settings.py and urls.py with 15-minute access tokens, 7-day refresh tokens, rotation, and blacklist-after-rotation enabled. REST_FRAMEWORK defaults to JWTAuthentication via rest_framework_simplejwt. The skill extends to custom JWT claims and object-level permissions so agents follow established DRF structure instead of inventing layouts. Developers reach for django-expert when building or securing Django APIs with token auth and fine-grained access control.

  • SimpleJWT setup with access/refresh lifetimes, rotation, and blacklist after rotation
  • Token obtain/refresh URL wiring and Bearer header configuration
  • Custom TokenObtainPairSerializer pattern for email and role claims on JWTs
  • Custom DRF permissions such as IsOwnerOrReadOnly for object-scoped access

Django Expert by the numbers

  • 3,002 all-time installs (skills.sh)
  • +96 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #187 of 4,386 Backend & APIs skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/jeffallan/claude-skills --skill django-expert

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs3k
repo stars10.8k
Security audit3 / 3 scanners passed
Last updatedMay 20, 2026
Repositoryjeffallan/claude-skills

How do you build production Django REST APIs with proper models, query optimization, JWT auth, and endpoint permissions?

Implement Django and Django REST patterns—JWT auth, custom claims, and object-level permissions—without guessing project structure.

Who is it for?

Python developers building or securing Django web apps and REST APIs who need DRF patterns for models, serializers, SimpleJWT, and tests.

Skip if: Skip for non-Django stacks, raw SQL-only backends, or frontend-only UI work with no Python API layer.

When should I use this skill?

Working with settings.py, models.py, manage.py, DRF serializers, viewsets, or Django ORM optimization requests.

What you get

Model definitions with indexes, validated serializers, permissioned viewsets, and APITestCase checks for public list and authenticated create flows.

  • settings.py JWT config
  • token API routes
  • permission classes

By the numbers

  • Six-step core workflow from requirements through models, views, auth, and tests
  • Five reference guides for models, serializers, viewsets, authentication, and testing

Files

SKILL.mdMarkdownGitHub ↗

Django Expert

Senior Django specialist with deep expertise in Django 5.0, Django REST Framework, and production-grade web applications.

When to Use This Skill

  • Building Django web applications or REST APIs
  • Designing Django models with proper relationships
  • Implementing DRF serializers and viewsets
  • Optimizing Django ORM queries
  • Setting up authentication (JWT, session)
  • Django admin customization

Core Workflow

1. Analyze requirements — Identify models, relationships, API endpoints 2. Design models — Create models with proper fields, indexes, managers → run manage.py makemigrations and manage.py migrate; verify schema before proceeding 3. Implement views — DRF viewsets or Django 5.0 async views 4. Validate endpoints — Confirm each endpoint returns expected status codes with a quick APITestCase or curl check before adding auth 5. Add auth — Permissions, JWT authentication 6. Test — Django TestCase, APITestCase

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
Modelsreferences/models-orm.mdCreating models, ORM queries, optimization
Serializersreferences/drf-serializers.mdDRF serializers, validation
ViewSetsreferences/viewsets-views.mdViews, viewsets, async views
Authenticationreferences/authentication.mdJWT, permissions, SimpleJWT
Testingreferences/testing-django.mdAPITestCase, fixtures, factories

Minimal Working Example

The snippet below demonstrates the core MUST DO constraints: indexed fields, select_related, serializer validation, and endpoint permissions.

# models.py
from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=255, db_index=True)
    author = models.ForeignKey(
        "auth.User", on_delete=models.CASCADE, related_name="articles"
    )
    published_at = models.DateTimeField(auto_now_add=True, db_index=True)

    class Meta:
        ordering = ["-published_at"]
        indexes = [models.Index(fields=["author", "published_at"])]

    def __str__(self):
        return self.title

# serializers.py
from rest_framework import serializers
from .models import Article

class ArticleSerializer(serializers.ModelSerializer):
    author_username = serializers.CharField(source="author.username", read_only=True)

    class Meta:
        model = Article
        fields = ["id", "title", "author_username", "published_at"]

    def validate_title(self, value):
        if len(value.strip()) < 3:
            raise serializers.ValidationError("Title must be at least 3 characters.")
        return value.strip()

# views.py
from rest_framework import viewsets, permissions
from .models import Article
from .serializers import ArticleSerializer

class ArticleViewSet(viewsets.ModelViewSet):
    """
    Uses select_related to avoid N+1 on author lookups.
    IsAuthenticatedOrReadOnly: safe methods are public, writes require auth.
    """
    serializer_class = ArticleSerializer
    permission_classes = [permissions.IsAuthenticatedOrReadOnly]

    def get_queryset(self):
        return Article.objects.select_related("author").all()

    def perform_create(self, serializer):
        serializer.save(author=self.request.user)
# tests.py
from rest_framework.test import APITestCase
from rest_framework import status
from django.contrib.auth.models import User

class ArticleAPITest(APITestCase):
    def setUp(self):
        self.user = User.objects.create_user("alice", password="pass")

    def test_list_public(self):
        res = self.client.get("/api/articles/")
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_create_requires_auth(self):
        res = self.client.post("/api/articles/", {"title": "Test"})
        self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)

    def test_create_authenticated(self):
        self.client.force_authenticate(self.user)
        res = self.client.post("/api/articles/", {"title": "Hello Django"})
        self.assertEqual(res.status_code, status.HTTP_201_CREATED)

Constraints

MUST DO

  • Use select_related/prefetch_related for related objects
  • Add database indexes for frequently queried fields
  • Use environment variables for secrets
  • Implement proper permissions on all endpoints
  • Write tests for models and API endpoints
  • Use Django's built-in security features (CSRF, etc.)

MUST NOT DO

  • Use raw SQL without parameterization
  • Skip database migrations
  • Store secrets in settings.py
  • Use DEBUG=True in production
  • Trust user input without validation
  • Ignore query optimization

Output Templates

When implementing Django features, provide: 1. Model definitions with indexes 2. Serializers with validation 3. ViewSet or views with permissions 4. Brief note on query optimization

Knowledge Reference

Django 5.0, DRF, async views, ORM, QuerySet, select_related, prefetch_related, SimpleJWT, django-filter, drf-spectacular, pytest-django

Documentation

Related skills

How it compares

Pick django-expert for opinionated DRF + SimpleJWT + permission patterns; use generic Python skills when not on Django.

FAQ

What does django-expert cover?

Django models with indexes, select_related/prefetch_related, DRF serializers and viewsets, SimpleJWT authentication, permissions, and APITestCase tests.

When should I use django-expert?

When building Django web applications or REST APIs, designing models, optimizing ORM queries, or configuring JWT and endpoint permissions.

What must django-expert implementations include?

Indexed fields, select_related for related objects, serializer validation, endpoint permissions, environment-variable secrets, and tests for models and API endpoints.

Is Django Expert safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.