SKILL.md
Django Application
Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
Overview
Build comprehensive Django web applications with proper model design, view hierarchies, database operations, user authentication, and admin functionality following Django conventions and best practices.
When to Use
- Creating Django web applications
- Designing models and database schemas
- Implementing views and URL routing
- Building authentication systems
- Using Django ORM for database operations
- Creating admin interfaces and dashboards
Quick Start
Minimal working example:
django-admin startproject myproject
cd myproject
python manage.py startapp users
python manage.py startapp products
Reference Guides
Detailed implementations in the references/ directory:
Guide
Contents
Django Project Setup
Model Design with ORM
Views with Class-Based and Function-Based Approaches
Views with Class-Based and Function-Based Approaches
Authentication and Permissions
Authentication and Permissions
Database Queries and Optimization
Database Queries and Optimization
URL Routing
Admin Interface Customization
Best Practices
✅ DO
- Use models for database operations
- Implement proper indexes on frequently queried fields
- Use select_related and prefetch_related for query optimization
- Implement authentication and permissions
- Use Django Forms for form validation
- Cache expensive queries
- Use management commands for batch operations
- Implement logging for debugging
- Use middleware for cross-cutting concerns
- Validate user input
❌ DON'T
- Use raw SQL without ORM
- N+1 query problems without optimization
- Store secrets in code
- Trust user input directly
- Override init in models unnecessarily
- Make synchronous heavy operations in views
- Use inheritance models unless necessary
- Expose stack traces in production