Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Method based views in django applications

  • Be the first to comment

  • Be the first to like this

Method based views in django applications

  1. 1. Method-based viewsin Django applications Gary Reynolds Touch Technology @goodtune
  2. 2. Refresher• Last time we looked at building up a library which will help save us some boilerplate• It incorporated better form fields, simple decorated mixins to enforce authentication, and a few other niceties
  3. 3. This time • What if we need to deploy the same application multiple times? • In our URLconf we could point to the applications 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),)
  4. 4. Issues• If your application requires configuration 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.
  5. 5. Basic anatomyclass MyApp(object): def __init__(self, name=myapp, app_name=myapp): = name self.app_name = app_name def get_urls(self): urlpatterns = patterns(, url(r^$, self.index, name=index), ) @property def urls(self): return self.get_urls(), self.app_name, def index(self, request): return HttpResponse()
  6. 6. Let’s see it in practice
  7. 7. 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.
  8. 8. Subclass our application
  9. 9. Real world example• Tournament Control is an application for managing sporting competitions • Scheduling fixtures • Allocating matches to grounds & timeslots • Recording results and automatic ladder updates
  10. 10. Tournament Control• Shameless plug • • •• We’re interested in Touch Superleague because they run multiple application instances - they have venues in Edinburgh, Cardiff, and Jersey.
  11. 11. Lets look at the
  12. 12. Questions?
  13. 13. • Sample project can be obtained from • example-two• This presentation can be downloaded from SlideShare • views-in-django-applications-14050952