Here are my notes on how to upgrade Tastypie from version 0.9.11 to 0.9.12, as there’re no release notes for v0.9.12. Release notes for 0.9.13 and above are available here: http://django-tastypie.readthedocs.org/en/latest/release_notes/index.html.
1. override_urls() becomes prepend_urls(), the new name makes more sense since what the function does is to insert customized urls instead of replacing the default urls with your customized urls.
2. obj_* methods accepts different parameters. Before:
def obj_get(self, request=None, **kwargs):
Now obj_get, obj_create, etc. accepts bundle as the parameter apart from keyword arguments. You can get request object from the bundle:
def obj_get(self, bundle, **kwargs):
request = bundle.request
3. apply_authorization_limits is no longer in use and it’s replace with a finer grained authorization mechanism. For example:
from tastypie.authorization import Authorization
from tastypie.exceptions import Unauthorized
def read_list(self, object_list, bundle):
user = bundle.request.user
if user.is_authenticated() and user.is_staff:
def read_detail(self, object_list, bundle):
if bundle.request.user.is_staff or bundle.obj.is_published:
def create_list(self, object_list, bundle):
def create_detail(self, object_list, bundle):
def update_list(self, object_list, bundle):
def update_detail(self, object_list, bundle):
def delete_list(self, object_list, bundle):
def delete_detail(self, object_list, bundle):
Please note that *_list methods should return a list or raise exceptions; whereas *_detail methods should return boolean values or raise exceptions. For more information, see: http://django-tastypie.readthedocs.org/en/v0.9.12/authorization.html
Hi, the company I’m working for (yabroad.com) is hiring Website Backend and Frontend Developers to our platform team. We are building an open platform for youngsters to travel beyond boarders and we offer youngsters internship, language study, travel and volunteer opportunities. Please contact me if you are interested.