我习惯用http请求定义我的django视图,该请求使用我可以迭代并显示的python数据字典发回http响应。我试图用backbone.js替换它。
目前我有这样的设置:
<ul id="teaching_students">
{% for student in students.object_list %}
<li class="selected">
<span> {{ student.name }} </span>
</li>
{% endfor %}
</ul>
我希望使用ICanHaz.js和Mustache.js作为javascript模板来填充客户端{{ student.name}}
。
到目前为止使用tastypie,我有一个PersonResource
,当所有的学生都通过时,所有学生都会以json对象的形式返回。
http://127.0.0.1:8000/api/people/?format=json
我的客户端结构被分解为views/models
(我使用require.js将它们组合在一起)。
我正在使用几个插件来帮助弥合主干和tastypie(backbone-tastypie.js)之间的差距,但我真的想看看其他人如何用REST api和backbone.js取代传统的django模板渲染
编辑:添加Backbone模型,这是我正在使用的模型
define([
'underscore',
'backbone'
], function(_, Backbone) {
var PersonModel = Backbone.Model.extend({
defaults : {
},
initialize: function( options ) {
},
parse : function(res) {
// because of jsonp
return res.data;
}
});
return PersonModel;
});
答案 0 :(得分:0)
所以你想从服务器端渲染转向客户端渲染?这意味着 你需要额外的http请求。但这是可能的。
我是否需要在views.py中为此网址生成API视图,如果是这样的话 这看起来像吗?
一旦您指定了ModelResource
和urlpattern
,美味派就可以完成所有工作。
您无需在应用程序的views.py中使用其他功能来处理http请求 - 响应周期。
如何在backbone.js中调用此URL并设置集合视图 和正确的路线?
像对待任何其他人一样对待api。将模型的url
字段设置为
/api/people/?format=json
让您的观点倾听change
PersonModel
事件
Fetch模特。
收到数据时,使用您选择的模板引擎渲染视图。
另请参阅Adding REST to Django了解有关为django应用程序提供RESTful接口的选项。