# Django

> Django framework best practices including project structure, ORM, and security. Use when this capability is needed.

- Skill: `tomevault-io/django-5` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/django-5`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/django-5/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/django-5

---


# Django Best Practices

## Project Structure
- Keep apps small and focused
- Use apps/ directory for apps
- Separate settings per environment
- Use environment variables for secrets

## Models
- Use verbose_name for fields
- Add indexes for queried fields
- Use select_related/prefetch_related
- Avoid N+1 queries
- Use custom managers for common queries

## Views
- Use class-based views for CRUD
- Use function views for simple logic
- Return proper HTTP status codes
- Use Django REST Framework for APIs

## Security
- Never disable CSRF protection
- Use Django's ORM (no raw SQL)
- Validate all inputs
- Use Django's auth system
- Keep DEBUG=False in production

## Performance
- Use Django Debug Toolbar in dev
- Cache with Redis/Memcached
- Use database connection pooling
- Optimize querysets
- Use lazy loading

---
> Source: [kprsnt2/MyLocalCLI](https://github.com/kprsnt2/MyLocalCLI) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-16 -->

