Class Outline: Advanced Django
* Deep inside Django's model framework
* The model lifecycle
* What happens when you define a model
* Metaclass magic
* ``contribute_to_class`` and ``contribute_to_related_class``
* Writing custom field types
* How fields actually work
* How relationship fields work
* Adding your own fields
* Generic relations
* Referring to types (instead of instances)
* How built-in Django apps use generic relations
* Tips and tricks
* Events and the dispatcher
* What are events?
* When events get fired
* Registering and listening to events
* Avoiding pitfalls
* "Behavior"
* What do I mean by "behavior"?
* Sketches of possible "behaviors":
* Rails' ``acts_as_versioned`` and friends
* Attaching Dublin Core metadata to arbitrary objects
* Making objects translatable
* Wrapping it up
* The complete implementation of a "translatable object"
framework.
* Plugging into Django's request/response stack
* The request/response lifecycle
* Middleware
* What's middleware?
* Writing middleware
* Registering middleware
* Authorization/authentication
* Users, groups, and permissions
* Requiring certain permissions to access a view
* Using middleware to control access globally
* Writing custom authorization plugins
* Why you'd want to do this
* The authorization API
* Example: integrating with YahooAuth
* Using Django with existing apps, databases, or data
* Importing data
* Tools for bulk data imports
* Techniques for keeping Django databases in sync with external
data sources.
* Integrating with existing apps and databases
* Using ``inspectdb``
* Tweaking ``inspectdb`` for better results
* Deploying Django
* Setting up a good development/deployment environment
* Building a large-scale Django cluster
* Caching (memcached)
* Django and load-balancing (perlbal)
* Using Django with database replication/pooling
* Monitoring the health of large-scale Django installations