A small conversion layer to make backbone.js work together happily with django-tastypie. Other REST APIs conforming to the same style are also compatible. See for example TastyMongo.
Backbone-tastypie is available under the MIT license.
Backbone-tastypie depends on Backbone (1.0.0 or newer), and thus on Underscore (1.4.4 or newer).
Add backbone_tastypie
to your INSTALLED_APPS
setting, and add the following to your base template:
<script type="text/javascript" src="{{ STATIC_URL }}js/underscore.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/backbone.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/backbone-tastypie.js"></script>
Backbone-tastypie overrides several Backbone methods for compatibility with django-tastypie. These mainly have to do
with Backbone.sync
, building urls for models and collections, and parsing data.
Backbone-tastypie supports several global API settings in the Backbone.Tastypie
namespace.
Default: true
By default, Tastypie doesn't return data after a POST
. Enabling this setting performs an extra GET
request to fetch
new data for the newly created model from the server. If you have control over the server, you can also enable the
always-return-data
option on your (Model)Resources.
Default: false
By default, Tastypie doesn't return data after a PUT
. Enabling this setting performs an extra GET
request to fetch
new data for the updated model from the server. If you have control over the server, you can also enable the
always-return-data
option on your (Model)Resources.
An object containing a username
and a key
.
Set the current csrf token. See https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax. You can also load the value from a cookie like this (provided you have the jQuery.cookie plugin installed):
Backbone.Tastypie.csrfToken = $.cookie( 'csrftoken' );
Backbone.sync
is overridden to perform an additional GET
request if there is no response body after creating an object
(see doGetOnEmptyPostResponse
), or after updating an object (see doGetOnEmptyPutResponse
).
Backbone.Collection.prototype.url
is overridden so it can build urls for a set of models. This is for example useful
when using the fetchRelated
method in Backbone-relational.