Introduction
Django ORM provides powerful model definitions and database operations.
Model Definition
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField(unique=True)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
price = models.DecimalField(max_digits=10, decimal_places=2)
published_date = models.DateField()
Queries
# All records
Author.objects.all()
# Filter
Author.objects.filter(name__contains="John")
# Get single
author = Author.objects.get(id=1)
# Create
Author.objects.create(name="Alice", email="alice@email.com")
# Update
author.name = "Bob"
author.save()
# Delete
author.delete()
Practice Problems
- Create models with relationships
- Query with filters and lookups
- Use select_related for joins
- Implement model methods
- Add model validation