Refresher• Last time we looked at building up a library which will help save us some boilerplate• It incorporated better form ﬁelds, simple decorated mixins to enforce authentication, and a few other niceties
This time • What if we need to deploy the same application multiple times? • In our URLconf we could point to the applications urls.py as many times as we need...from django.conf.urls.defaults import patterns, urlurlpatterns = patterns(, url(r^usual-use/, myapp.urls), url(r^it/makes/sense/here/too/, myapp.urls),)
Issues• If your application requires conﬁguration at run-time, you probably use a custom settings.MYAPP_VAR or similar?• That will usually apply globally, not per mount point.• If the application was an instance with it’s own state, the issue goes away.
Horses for courses• This book store is missing a view for the details of a book.• It really is an admin application, allowing authenticated creation and updating of Book instances by authenticated users.• Lets use inheritance to split the functionality.
Real world example• Tournament Control is an application for managing sporting competitions • Scheduling ﬁxtures • Allocating matches to grounds & timeslots • Recording results and automatic ladder updates
Tournament Control• Shameless plug • http://www.sydney.touch.asn.au/ • http://www.touchsuperleague.org.uk/ • http://www.touchworldcup2011.co.uk/• We’re interested in Touch Superleague because they run multiple application instances - they have venues in Edinburgh, Cardiff, and Jersey.
Lets look at the front-endwww.touchsuperleague.org.uk/edinburgh/draws-ladders
• Sample project can be obtained from bitbucket.org • bitbucket.org/goodtune/sydjango- example-two• This presentation can be downloaded from SlideShare • slideshare.net/goodtune/method-based- views-in-django-applications-14050952