Pimping your controller

  1. Pagination

    1. @expose(template="myproject.templates.list")  
    2. @paginate('stuff', limit=20)  
    3. def list(self):  
    4.     return dict(stuff=User.select())  
  2. Validation and Error Handling

    1. @expose()  
    2. def index(self, tg_errors=None):  
    3.     if tg_errors:  
    4.         # Handle errors however you want  
    5.     return dict()  
    6.   
    7. @error_handler(index)  
    8. @expose(template="myproject.templates.form")  
    9. @validate(validators = {  
    10.         'item'  : validators.PlainText(),  
    11.         'size'  : validators.OneOf(['S','M','L'], if_empty="M"),  
    12.         'price' : validators.Money(not_empty=True)  
    13.     })  
    14. def storeitem(self, tg_errors=None, **kwargs):  
    15.     return dict(message="Booyah!")  
  3. Identity

    1. @expose()  
    2. @identity.require(identity.in_group("admin"))  
    3. def admins(self):  
    4.     ...  
  4. Secure Resource

    1. from turbogears.identity import SecureResource  
    2. from turbogears.controllers import Controller  
    3.   
    4. class AdminController(Controller, SecureResource):  
    5.     require = identity.in_group("releng")  
    6.     ...  
< Previous Next >