SlideShare a Scribd company logo
1 of 14
Download to read offline
Method-based views
in Django applications
      Gary Reynolds
     Touch Technology

           @goodtune
     bitbucket.org/goodtune
      github.com/goodtune
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
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, url

urlpatterns = patterns('',
    url(r'^usual-use/', 'myapp.urls'),
    url(r'^it/makes/sense/here/too/', 'myapp.urls'),
)
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.
Basic anatomy
class MyApp(object):

   def __init__(self, name='myapp', app_name='myapp'):
       self.name = 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, self.name

   def index(self, request):
       return HttpResponse('')
Let’s see it in practice
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.
Subclass our application
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
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-end

www.touchsuperleague.org.uk/edinburgh/draws-ladders
Questions?
• 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

More Related Content

What's hot

Active Admin
Active AdminActive Admin
Active AdminGreg Bell
 
Troubleshooting APEX Performance Issues
Troubleshooting APEX Performance IssuesTroubleshooting APEX Performance Issues
Troubleshooting APEX Performance IssuesRoel Hartman
 
Apache Stratos: the PaaS from Apache
Apache Stratos: the PaaS from ApacheApache Stratos: the PaaS from Apache
Apache Stratos: the PaaS from ApacheWSO2
 
The Most Valuable Corporate Gifts That Your Employees Will Love
The Most Valuable Corporate Gifts That Your Employees Will LoveThe Most Valuable Corporate Gifts That Your Employees Will Love
The Most Valuable Corporate Gifts That Your Employees Will LoveAugrav
 
Managing the Pace of Innovation: Behind the Scenes at AWS (SPOT201) | AWS re:...
Managing the Pace of Innovation: Behind the Scenes at AWS (SPOT201) | AWS re:...Managing the Pace of Innovation: Behind the Scenes at AWS (SPOT201) | AWS re:...
Managing the Pace of Innovation: Behind the Scenes at AWS (SPOT201) | AWS re:...Amazon Web Services
 
Managing the Pace of Innovation: Behind the Scenes at AWS
Managing the Pace of Innovation: Behind the Scenes at AWSManaging the Pace of Innovation: Behind the Scenes at AWS
Managing the Pace of Innovation: Behind the Scenes at AWSAmazon Web Services
 
EmberJS BucharestJS
EmberJS BucharestJSEmberJS BucharestJS
EmberJS BucharestJSRemus Rusanu
 
Action Bar Sherlock tutorial
Action Bar Sherlock tutorialAction Bar Sherlock tutorial
Action Bar Sherlock tutorialAhsanul Karim
 
Introduction to ember js
Introduction to ember jsIntroduction to ember js
Introduction to ember jsAdnan Arshad
 

What's hot (15)

Active Admin
Active AdminActive Admin
Active Admin
 
Troubleshooting APEX Performance Issues
Troubleshooting APEX Performance IssuesTroubleshooting APEX Performance Issues
Troubleshooting APEX Performance Issues
 
Bare acl
Bare aclBare acl
Bare acl
 
Apache Stratos: the PaaS from Apache
Apache Stratos: the PaaS from ApacheApache Stratos: the PaaS from Apache
Apache Stratos: the PaaS from Apache
 
REST API for your WP7 App
REST API for your WP7 AppREST API for your WP7 App
REST API for your WP7 App
 
The Most Valuable Corporate Gifts That Your Employees Will Love
The Most Valuable Corporate Gifts That Your Employees Will LoveThe Most Valuable Corporate Gifts That Your Employees Will Love
The Most Valuable Corporate Gifts That Your Employees Will Love
 
Get rss to blogger
Get rss to bloggerGet rss to blogger
Get rss to blogger
 
Managing the Pace of Innovation: Behind the Scenes at AWS (SPOT201) | AWS re:...
Managing the Pace of Innovation: Behind the Scenes at AWS (SPOT201) | AWS re:...Managing the Pace of Innovation: Behind the Scenes at AWS (SPOT201) | AWS re:...
Managing the Pace of Innovation: Behind the Scenes at AWS (SPOT201) | AWS re:...
 
Managing the Pace of Innovation: Behind the Scenes at AWS
Managing the Pace of Innovation: Behind the Scenes at AWSManaging the Pace of Innovation: Behind the Scenes at AWS
Managing the Pace of Innovation: Behind the Scenes at AWS
 
EmberJS BucharestJS
EmberJS BucharestJSEmberJS BucharestJS
EmberJS BucharestJS
 
Lighting talk android espesso recorder
Lighting talk   android espesso recorderLighting talk   android espesso recorder
Lighting talk android espesso recorder
 
Apas
ApasApas
Apas
 
Action Bar Sherlock tutorial
Action Bar Sherlock tutorialAction Bar Sherlock tutorial
Action Bar Sherlock tutorial
 
Rails engine
Rails engineRails engine
Rails engine
 
Introduction to ember js
Introduction to ember jsIntroduction to ember js
Introduction to ember js
 

Similar to Method based views in django applications

Angular Intermediate
Angular IntermediateAngular Intermediate
Angular IntermediateLinkMe Srl
 
GDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App EngineGDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App EngineYared Ayalew
 
Ei cakephp
Ei cakephpEi cakephp
Ei cakephpeiei lay
 
Pluggable patterns
Pluggable patternsPluggable patterns
Pluggable patternsCorey Oordt
 
BackboneJS Training - Giving Backbone to your applications
BackboneJS Training - Giving Backbone to your applicationsBackboneJS Training - Giving Backbone to your applications
BackboneJS Training - Giving Backbone to your applicationsJoseph Khan
 
Modern Automated Site Provisioning for SharePoint Online
Modern Automated Site Provisioning for SharePoint OnlineModern Automated Site Provisioning for SharePoint Online
Modern Automated Site Provisioning for SharePoint OnlineDocFluix, LLC
 
Grails patterns and practices
Grails patterns and practicesGrails patterns and practices
Grails patterns and practicespaulbowler
 
Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial之宇 趙
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Dimitri de Putte
 
Django Overview
Django OverviewDjango Overview
Django OverviewBrian Tol
 
Python & Django TTT
Python & Django TTTPython & Django TTT
Python & Django TTTkevinvw
 
Google app-engine-with-python
Google app-engine-with-pythonGoogle app-engine-with-python
Google app-engine-with-pythonDeepak Garg
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...Amazon Web Services
 
Django apps and ORM Beyond the basics [Meetup hosted by Prodeers.com]
Django apps and ORM Beyond the basics [Meetup hosted by Prodeers.com]Django apps and ORM Beyond the basics [Meetup hosted by Prodeers.com]
Django apps and ORM Beyond the basics [Meetup hosted by Prodeers.com]Udit Gangwani
 
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Mike Schinkel
 

Similar to Method based views in django applications (20)

Angular Intermediate
Angular IntermediateAngular Intermediate
Angular Intermediate
 
GDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App EngineGDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App Engine
 
Cakeph pppt
Cakeph ppptCakeph pppt
Cakeph pppt
 
Ei cakephp
Ei cakephpEi cakephp
Ei cakephp
 
Pluggable patterns
Pluggable patternsPluggable patterns
Pluggable patterns
 
BackboneJS Training - Giving Backbone to your applications
BackboneJS Training - Giving Backbone to your applicationsBackboneJS Training - Giving Backbone to your applications
BackboneJS Training - Giving Backbone to your applications
 
Modern Automated Site Provisioning for SharePoint Online
Modern Automated Site Provisioning for SharePoint OnlineModern Automated Site Provisioning for SharePoint Online
Modern Automated Site Provisioning for SharePoint Online
 
Grails patterns and practices
Grails patterns and practicesGrails patterns and practices
Grails patterns and practices
 
Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial
 
Reusable Apps
Reusable AppsReusable Apps
Reusable Apps
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012
 
Django Overview
Django OverviewDjango Overview
Django Overview
 
Python & Django TTT
Python & Django TTTPython & Django TTT
Python & Django TTT
 
Google app-engine-with-python
Google app-engine-with-pythonGoogle app-engine-with-python
Google app-engine-with-python
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Tango with django
Tango with djangoTango with django
Tango with django
 
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...
(BDT402) Performance Profiling in Production: Analyzing Web Requests at Scale...
 
Introduction to AngularJs
Introduction to AngularJsIntroduction to AngularJs
Introduction to AngularJs
 
Django apps and ORM Beyond the basics [Meetup hosted by Prodeers.com]
Django apps and ORM Beyond the basics [Meetup hosted by Prodeers.com]Django apps and ORM Beyond the basics [Meetup hosted by Prodeers.com]
Django apps and ORM Beyond the basics [Meetup hosted by Prodeers.com]
 
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
 

Recently uploaded

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 

Recently uploaded (20)

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 

Method based views in django applications

  • 1. Method-based views in Django applications Gary Reynolds Touch Technology @goodtune bitbucket.org/goodtune github.com/goodtune
  • 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. 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, url urlpatterns = patterns('', url(r'^usual-use/', 'myapp.urls'), url(r'^it/makes/sense/here/too/', 'myapp.urls'), )
  • 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. Basic anatomy class MyApp(object): def __init__(self, name='myapp', app_name='myapp'): self.name = 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, self.name def index(self, request): return HttpResponse('')
  • 6. Let’s see it in practice
  • 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.
  • 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. 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.
  • 11.
  • 12. Lets look at the front-end www.touchsuperleague.org.uk/edinburgh/draws-ladders
  • 14. • 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