2012-06-22 6 views
0

Я пытаюсь использовать Backbone.js для моего проекта Django, и это запутывает. Так я понимаю, мне нужно tastypie для RESTful API с Джанго, к которому я новичок, так, например, у меня есть SongResource как следующие:Путаница о Backbone.js и Django

class SongResource(ModelResource): 
    class Meta: 
     queryset = Song.objects.all() 
     authorization = Authorization() 

Все, что это делает возвращается список всех песни, которые у меня есть в базе данных, не так ли? Насколько я понимаю, я должен использовать это в маршрутизаторе Backbone.js для получения всех песен, а затем выполнять все манипуляции с данными в моем JS-коде вместо представления Django? Итак, если я хочу получить все песни, которые пользователь загрузил в систему, я должен получить все песни из Django и выполнить поиск песен пользователя в JS-коде? Кроме того, что, если я хочу сохранить песни, прослушиваемые пользователем, например, я привык делать это, отправив запрос Ajax в представление, где я сохраняю действие.

Другое дело, допустим, у меня есть пять моделей в моем приложении Django, следует ли создавать модели предоставления в Backbone.js тоже? Итак, в Backbone.js, я просто получаю данные из Django и манипулирую ими в интерфейсе, а не в представлении Django, как я привык?

Если вы видите мое замешательство, пожалуйста, наведите меня на некоторые статьи, учебные пособия, видеоролики!

Большое спасибо

+0

Может быть, думать о том, что передняя и задняя системы как «независимые» друг от друга помогут отделить ваш мыслительный процесс :) – PhD

+0

Насколько независимы? –

ответ

0

Вы определенно должны сделать фильтрацию на Django стороне :) Я ничего не знаю о tastypie, но тока (в системе) пользователь, у вас есть, что в Джанго сессии, поэтому вы не можете полагаться на Meta.queryset, вместо этого набор запросов изменяется для каждого запроса. Вероятно, вам необходимо переопределить какой-либо метод просмотра.

По экономии слушал песни, вы сначала решить, когда сделать это (начало или конец песни), и после этого события вы save() некоторые Listening (Backbone) модели, которые будут вызывать запрос XHR (см Backbone.sync).

Да, вы должны использовать модельные модели для моделей Django, если вы используете их на стороне клиента. Опять же, см. Backbone.sync

+0

Допустим, песня считается «слушаемой», когда она закончена. Магистраль отправит запрос в Django, правильно? если да, должен ли я обрабатывать этот запрос в представлении Django «классическим» способом? Итак, точка API заключается в том, чтобы просто предоставить Backbone с данными и позволить им манипулировать им? –

+0

Это был бы самый простой и понятный способ сделать это. – skrat

+0

так, например, если в моем маршрутизаторе есть '/ playlist /: id', это означает, что в моем URLconf я должен иметь что-то вроде' url (r '^ playlist/(? P . $)' 'И назначить представление который обрабатывает запрос (например, для сохранения созданного плейлиста и т. д. и т. д.). Спасибо за то, что он со мной связан. –

Смежные вопросы