WINDSURF RULESDjango 5 & Ninja / DRF Windsurf Cascade Rules
Generate Windsurf Cascade rules for Django 5 & Ninja / DRF in .windsurf/rules/, with the stack's conventions and checks. Windsurf's Cascade agent reads rules from .windsurf/rules/. This rule gives Cascade the Django 5 & Ninja / DRF conventions, commands and patterns to avoid, so its edits follow the stack instead of generic or outdated defaults.
.windsurf/rules/python-django.mdWhat this file changes for Django 5 & Ninja / DRF
Windsurf's Cascade agent reads rules from .windsurf/rules/. This rule gives Cascade the Django 5 & Ninja / DRF conventions, commands and patterns to avoid, so its edits follow the stack instead of generic or outdated defaults.
Django 5 & Ninja / DRF: code to avoid and code to write instead
# Discouraged: Synchronous blocking query inside async context & N+1 queries
@router.get("/articles/{article_id}")
async def get_article(request, article_id: int):
article = Article.objects.get(id=article_id) # Synchronous blocking call!
return {"id": article.id, "title": article.title, "author": article.author.username} # N+1 DB hit!from ninja import Router, Schema
from django.shortcuts import aget_object_or_404
from .models import Article
router = Router()
class ArticleOut(Schema):
id: int
title: str
author_name: str
@router.get("/articles/{article_id}", response=ArticleOut)
async def get_article(request, article_id: int):
# Asynchronous fetch with joined relationship preventing N+1
article = await Article.objects.select_related("author").aget(id=article_id)
return {
"id": article.id,
"title": article.title,
"author_name": article.author.username,
}How to Install Django 5 & Ninja / DRF Windsurf Cascade Rules via Terminal
Step 1: Open Project Directory & Verify Target Placement
Open your terminal and navigate to your project root folder where the .windsurf/rules/python-django.md file will reside. Ensure the file is placed at the exact path below relative to your project root so the AI engine automatically loads it:
Step 2: Fetch Rule File via Terminal Command
Run curl, PowerShell, or wget to stream the rule directly from the DevScratchpad raw API endpoint and write it to .windsurf/rules/python-django.md:
Terminal One-Liner Install
Run directly in your project root to stream and write this rule file with one command.
mkdir -p ".windsurf/rules" && curl -fsSL "https://www.devscratchpad.tech/api/raw/windsurf-rules/python-django" -o ".windsurf/rules/python-django.md"Step 3: Check that Windsurf Cascade uses it
Cascade reads rules in .windsurf/rules/ and applies this one according to its trigger.
Windsurf rules generator: Cascade rules for your stack
Windsurf Cascade Rules: how it works, where the file goes, and every Windsurf preset.
Tools for Django 5 & Ninja / DRF work
Browser-based utilities to test, format and inspect the code your AI tool writes. Nothing you paste is uploaded.
cURL to JavaScript Fetch
Translate bash cURL commands into JavaScript fetch() API calls.
cURL to Python Requests
Translate bash cURL commands into Python `requests` code.
JSON Formatter & Validator
Format, validate, and minify JSON with interactive syntax highlighting.
HMAC Generator
Compute Hash-based Message Authentication Codes (HMAC) using SHA256, SHA512, etc.
Live Repository & Schema Ingestion
Inspect any public or private GitHub repository, or paste SQL DDL and Prisma models directly in AI Skill Studio to auto-generate authentic rules. Zero server transmission.
Migrating from Legacy .cursorrules or CLAUDE.md?
Use the free, in-browser converter to turn one long rules file into Cursor .mdc, Claude SKILL.md or Windsurf rules.
Technical FAQ: Django 5 & Ninja / DRF AI Rulebooks
Where do I save this Windsurf rule?
Save it as .windsurf/rules/python-django.md in your project. Cascade picks up rules in that folder automatically.
When does Windsurf apply this rule?
According to the trigger in its frontmatter: always on, on a glob match, when Cascade decides the description fits the task, or when you @-mention it.