← Django learning pathDjango · Module 4 of 10
Models and the ORM
Define database tables as Python classes and query them.
📖 Key ideas
- class Post(models.Model): title = models.CharField(max_length=200).
- Field types: CharField, TextField, IntegerField, DateTimeField, BooleanField.
- Relationships: ForeignKey, ManyToManyField, OneToOneField.
- Query: Post.objects.filter(published=True).order_by("-created").
- The ORM writes safe SQL for you.
💡 Real-life example: The ORM is a bilingual assistant: you speak Python, it talks SQL to the database.
ModelPython class mapped to a table
ForeignKeyMany-to-one relationship
QuerySetLazy collection of database rows
objectsDefault model manager