Есть, популярная на ЛОР'e, связка django-tastypie + backbone.js.
Суть проблемы такова. При попытке удалить объект модели и соответственно объект из БД, получаю тривиальную ошибку - 404 NOT FOUND! Но не пойму почему? Подскажите, люди знающие, где здесь ошибка зарылась?
resources.py
class UserResources(ModelResource):
class Meta:
queryset = User.objects.all()
resource_name = "users"
allowed_methods = ['get', 'post', 'put', 'delete']
excludes = [
'email', 'password', 'is_superuser', 'date_joined', 'first_name',
'is_active', 'is_staff', 'last_login', 'last_name'
]
filtering = {
'id': ALL,
}
authorization = Authorization()
always_return_data = True
class EntryResource(ModelResource):
user = fields.ForeignKey(UserResources, 'user', full=True)
class Meta:
queryset = Entry.objects.all()
allowed_methods = ['get', 'post', 'put', 'delete']
resource_name = 'entries'
filtering = {
'id': ALL,
'user': ALL_WITH_RELATIONS
}
authorization = Authorization()
always_return_data = True
app.js
...
var UserModel = Backbone.Model.extend({
urlRoot: "/users/"
});
var ProjectModel = Backbone.Model.extend({
urlRoot: "/entries/"
});
...
var DeleteEntryView = Backbone.View.extend({
el: "#entry-content",
events: {
"click #confirm-delete-entry-btn": "deleteEntry",
"click #cancel-delete-entry-btn": "cancel"
},
template: _.template( $("#delete-entry-template").html() ),
initialize: function(options) {
this.entry_id = null;
this.entry = undefined;
if (options.entry_id) {
this.entry_id = options.entry_id;
this.entry = new EntryModel({id: options.entry_id});
}
},
render: function() {
// Просто рендерим шаблон удаления записи
},
deleteEntry: function() {
this.entry.destroy({
wait: true,
success: function() {
console.log("SUCCESSFUL!");
router.navigate("entries", {trigger: true});
},
error: function() {
console.log("ERROR!");
}
});
return false;
},
cancel: function() {
router.navigate("entries", {trigger: true});
return false;
}
});
URL'ы ресурса и модели один в один совпадают. Объект this.entry имеется (со всеми свойствами, что нужно). Но при выполнении метода destroy() сервер возвращает ошибку - 404 NOT FOUND! На что тестипай ругается?