1

私は、反復して表示できるデータのpython辞書を使用してhttp応答を返すhttp要求でdjangoビューを定義することに慣れています。これを 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、次のURLが渡されると、すべての学生がjsonオブジェクトとして返される.

http://127.0.0.1:8000/api/people/?format=json
  1. views.py でこの URL の API ビューを生成する必要がありますか?
  2. backbone.js でこの URL を呼び出して、コレクション、ビュー、および正しいルートを設定するにはどうすればよいですか?

クライアント側の構造は次のように分割されていviews/modelsます (require.js を使用してそれらをまとめています)。

バックボーンと Tastypie (backbone-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;

});
4

1 に答える 1

0

サーバー側のレンダリングからクライアント側のレンダリングに移行したいですか? これは、追加の http リクエストが発生することを意味します。しかし、それは可能です。

views.py でこの URL の API ビューを生成する必要がありますか?

ModelResourceと を指定すると、おいしいパイはすべての作業を行いますurlpattern。http 要求と応答のサイクルを処理するために、アプリの views.py に別の関数を用意する必要はありません。

  1. リソースを URL にフックする方法については、おいしいパイのチュートリアルをご覧ください。
  2. Postman chrome 拡張機能のようなテスト REST クライアントを使用して、問題がないかどうかを確認します。

backbone.js でこの URL を呼び出して、コレクション、ビュー、および正しいルートを設定するにはどうすればよいですか?

  1. API を他のものと同様に扱います。urlモデルのフィールドを次のように設定します

    /api/people/?format=json

  2. ビューに次のchangeイベントをリッスンさせますPersonModel

  3. モデルを取得します。

  4. データの受信時に、選択したテンプレート エンジンを使用してビューをレンダリングします。

Djangoアプリに RESTful インターフェイスを提供するオプションについては、Django への REST の追加も参照してください。

于 2013-03-04T05:27:04.360 に答える