← Django learning path
Django · Module 4 of 10

Models and the ORM

Define database tables as Python classes and query them.

📖 Key ideas

  1. class Post(models.Model): title = models.CharField(max_length=200).
  2. Field types: CharField, TextField, IntegerField, DateTimeField, BooleanField.
  3. Relationships: ForeignKey, ManyToManyField, OneToOneField.
  4. Query: Post.objects.filter(published=True).order_by("-created").
  5. 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