-Welcome to your wiki! This is the default page we've installed for your convenience. Go ahead and edit it.
-This wiki uses the [[http://www.wikicreole.org/|Creole]] syntax, and is fully compatible with the 1.0 specification.
-The wiki itself is actually a hg repository, which means you can clone it, edit it locally/offline, add images or any other file type, and push it back to us. It will be live immediately.
-$ hg clone http://bitbucket.org/david/djangorators/wiki/
-Wiki pages are normal files, with the .wiki extension. You can edit them locally, as well as creating new ones.
-=== Syntax highlighting ===
-You can also highlight snippets of text, we use the excellent [[http://www.pygments.org/|Pygments]] library.
-Here's an example of some Python code:
- formatter = lambda t: "funky"+t
-You can check out the source of this page to see how that's done, and make sure to bookmark [[http://pygments.org/docs/lexers/|the vast library of Pygment lexers]], we accept the 'short name' or the 'mimetype' of anything in there.
+Most of the time your Django views look like this:
+def my_view(request, args):
+ # deal with permissions
+ return an http response
+I think it's a bit silly to continuously copy/paste boring parts and that's exactly the place where decorators can be powerful.
+Imagine decorators like that:
+def my_view(request, instance):
+* from_object which deals with arguments and return an instance
+* owner_required which verifies if the request.user is the owner of the retrieved object
+* as_html which renders the context dict returned as an http response
+You can of course set a lot of as_* decorators (as_json, as_rdfxml and so on) applied in urls in order to use the same view.
+I'd love to know your thoughts about this approach even before I write the first line of code ;)