This is the general outline I'm working from so far. I think this could change slightly as I develop the talk, but this outline conveys the general theme.
Introduction and display of basic django-debug-toolbar usage (2 min)
Things the admin does well (3 min)
Makes development very fast
For many use cases, it "does the right thing" automatically. For example, modifying the HTML in a callable won't cause new queries.
What can sneak up on you (5 min)
Having lots of related items visible in the list view
Using list_select_related
Overriding queryset for additional select_related and prefetch_related options
What to avoid in callables (3 min)
Queries that will be executed on every row
The default widgets for many-to-many and foreign key fields (3 min)
What widgets to use to replace the defaults based on how many options you have in your database
Custom aggregates in the list view (i.e. custom querysets) (3 min)
When this is a good idea
When this is too slow and you need other options
More general performance improvements through caching (3-5 min)
Django's caching framework
Caching with third-party packages / tools
Custom caching with Redis
Questions (Remaining time) |