This repository is a tutorial for Django.
The v0 branch is the first version of this tutorial, made in 2024 for a video tutorial made for ENI. The v1 branch is the second version of this tutorial, made in 2025 as a support for a book written for ENI.
The main branch is and will always be the last version of this tutorial.
The tutorial has several steps. Each one is matched to a particular step.
Only steps of the current branch are displayed here. Change branch to see other tags.
- Introduction
- v1.0.0: Git initialisation
- v1.0.1: Docker initialisation
- v1.0.2: Poetry initialisation
- v1.0.3: Handling docker security
- v1.0.4: Project initialisation
- v1.0.5: Using PostGreSQL
- v1.0.6: Add some useful tools
- Models
- v1.1.0 Creating the first app
- v1.1.1 First models
- v1.1.2 Example of fields
- v1.1.3 Enumeration fields
- v1.1.4 Foreign keys
- v1.1.5 Ordering items
- v1.1.6 Selective Foreign keys
- v1.1.7 One-to-one relationships
- v1.1.8 Multi-table inheritance
- v1.1.9 Many-to-many relationships
- ORM
- v1.2.0 Models and queries
- v1.2.1 Managers
- v1.2.2 Fixtures
- CRUD
- v1.3.0 Lists
- v1.3.1 Forms
- v1.3.2 Inlines
- v1.3.3 Security
- v1.3.4 Actions
- Views
- v1.4.0 Template views
- v1.4.1 List views
- v1.4.2 Detail views
- v1.4.3 Update views
- v1.4.4 Create views
- v1.4.5 Delete views
- v1.4.6 Authentication views
- I18N
- v1.5.0 Rosetta
- Web services
- v1.6.0 DRF
- v1.6.0-alpha1 Basic usage
- v1.6.0-alpha2 Using a reverse FK
- v1.6.0-alpha3 Creating a new endpoint
- v1.6.0-alpha4 Using depth
- v1.6.1 Django Ninja
- v1.6.0 DRF
- Advanced models
- v1.7.0 Natural keys
- v1.7.1 Mixins
- v1.7.2 Complex Migrations
- v1.7.3 SQL Migrations
- v1.7.4 Signals
- v1.7.5 Recursive models
- v1.7.6 Polymorphic models
- Advanced CRUD
- v1.8.0 Polymorphic views
- v1.8.1 Multiple views for one model
- v1.8.2 Advanced filters
- v1.8.3 Custom fields / widgets
- v1.8.4 Improving navigation
- v1.8.5 Creating new view
- v1.8.6 Jazzmin integration
- Advanced views
- v1.9.0 Bootstrap5 integration
- v1.9.1 Datatables integration
- v1.9.2 Markdown editor
- v1.9.3 Template tags
- Forms
- v1.10.0 Custom forms
- v1.10.1 Crispy forms
- v1.10.2 Crispy formsets
- Tools
- v1.11.0 Django commands
- v1.11.1 Middlewares
- v1.11.2 Celery
- Tests
- v1.12.0 Factories
- v1.12.1 Unit tests
- v1.12.2 E2E tests
- Deployment
- v1.13.0 Deployment