0
{% with JSONContent as object %}{% include "_comments.html" %}{% endwith %}

JSONContent は、メソッドで取得した django モデル インスタントです$.get()。「_comments.html」はコメント用のレンダリングされていないテンプレートです。そのテンプレートをレンダリングし、AJAX でクライアントに送信したい (そのため、復元されたデータはテンプレートからレンダリングされた HTML になります)。

4

1 に答える 1

1

サーバーへの ajax リクエストからモデルのインスタンスを取得しているように聞こえますが、そのインスタンスを「_comments.html」テンプレートで使用したいと考えています。そうですか?その場合は、代わりにサーバーでテンプレートをレンダリングし、レンダリングされた HTML を ajax リクエストで取得できます。

したがって、fetch_new_commentsajax リクエストを処理するというビューがあるとします。コメント モデルを取得して JSON にダンプし、それを返す代わりに、ビューは次のようになります。

def fetch_new_comments(request):
  comments = ... # get whatever data you're using
  return render_to_response("_comments.html", {"comments": comments})

したがって、これは、ajax リクエストが (JSON オブジェクトではなく) HTML のチャンクを受け取り、それをページに挿入することを意味します。jQuery を使用している場合は、次のようにすることができます。

$.get("http://yoursite.com/fetch_new_comments/", function (resp) {
  $("#new_comments_container").html(resp);
});
于 2012-12-12T22:46:08.307 に答える