2013-03-03 125 views
1

翻译Django的服务器模板,我用我的定义与HTTP请求发送HTTP响应回来的数据的Python字典,我可以遍历并显示Django的看法。我试图用backbone.js替换这个。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对象,当下面的url传递。

http://127.0.0.1:8000/api/people/?format=json 
  1. 我是否需要生成的网址,views.py的API来看,如果是的话是什么样子?
  2. 我怎么叫,在Backbone.js的,此URL,并成立了一个集合,视图和正确的路线?

我的客户端结构分为views/models(我用require.js把他们聚在一起)。

我使用几个插件,以帮助弥合骨干和tastypie(骨干-tastypie.js),但我真的想看看其他人取代了传统的Django的模板与REST API的渲染和Backbone.js的差距

编辑:添加骨干模型,这里是我使用的模型

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

所以你想从服务器端渲染到客户端渲染?这意味着 你招致额外的http请求。但这是可能的。

我是否需要在views.py中为此网址生成一个API视图,如果是的话 看起来像什么?

美味派做了所有的工作,一旦你指定了你的ModelResourceurlpattern。 您不需要在应用程序的views.py中有另一个函数来处理http请求 - 响应循环。

  1. 退房的tasty pie tutorial学习如何将资源挂钩到URL。
  2. 使用测试REST客户端类的Postman chrome extension,看看是否一切正常。

我怎么叫,在Backbone.js的,此URL,并成立了一个集合,观点 和正确的路线?

  1. 像对待任何其他的API。建立模型的url领域

    /api/people/?format=json

  2. 有你的观点听change事件的PersonModel

  3. Fetch模型。

  4. 当收到数据时,使用您选择的模板引擎渲染视图。

另见Adding REST to Django上提供的RESTful接口Django的应用程序选项。

+0

因此,通过创建一个视图来监听PersonModel中的任何更改,我不必在backbone.js中定义任何显式路由?我的应用程序如何获得这个视图。 – Warz 2013-03-04 15:35:12

+0

该视图必须注册一个回调才能听取模型的更改......请参阅http://stackoverflow.com/questions/8782704/backbone-js-tutorial以获取更多骨干教程 – Pramod 2013-03-04 15:43:03

+0

感谢您的解释。我会发布一个更具体的问题和我得到的错误。 – Warz 2013-03-04 15:47:37