2017-10-13 16 views
0

私はajaxを学んでいます。たとえば、私はいくつかの項目を取得したい。 jsonはdictのようなデータしか含んでいないので、それらを複雑なhtml要素としてレンダリングする必要があります。Djangoはhtml要素でjson応答を表示します

私はレンダリングジョブをどこで行うべきか考えています。フロントエンドで行われた場合、そのような複雑なhtml要素をレンダリングするためにjavascriptを使用すると苦しいでしょう。

だから私は、Djangoテンプレートを活用する方が良いと思っていました。そして私が必要とするのは、htmlテンプレートを使ってレンダリングし、html要素全体をjsonの文字列に入れ、jsonを返すことです。ですから、私のフロントエンドは、data ['element']のようなレンダリングされた要素を簡単に取り出し、それを私のページに追加します。

しかし私はDjangoでこれを行う方法がわからないので、ususally htmlページをレンダリングして直接返します。しかし、html要素をどのようにレンダリングしてjsonに入れることができますか? これを行うには良い方法がありますか?

答えて

1

これで問題はありません。

your/html/urlには、レンダリングされたdjangoテンプレートを返すものがあります。

は、その後、あなたのJavaScriptで、あなたがする必要があるすべてはありませんすべてのDjangoのエンドポイントは、HTML文字列を返すことですのでです

$.ajax({ 
    url: 'your/html/url', 
    action: 'get', 
    success: function(response) { 
     $("#place-you-want-answer").html(response); 
    } 
})' 

です。通常、ブラウザがそれに当たると、ページ全体が読み込まれますが、javascriptのget-requestでも使用できます。

学習しているだけなら、これはうまくいく方法です。しかし、これが長期的なプロジェクトの場合、私は真剣にJavaScriptフレームワークを使用することを検討します。オブジェクトをHTMLに変換する作業をはるかに簡単にします。例えば、反応は本当にいいですね。

関連する問題