検索

ホームページ  >  に質問  >  本文

Ajaxリクエスト後に「div」を更新する

<p>これは、Django での最初のプロジェクトです。私は Django、ajax、JavaScript を初めて使用します。 ajaxリクエストを行った後、データをjinjaテンプレートに送信する必要があります。 </p> <p>私のindex.htmlは次のとおりです:</p> <pre class="brush:php;toolbar:false;">{% if data %} <p>{{data.title}}</p> <p>{{data.price}}</p> {% endif %}</pre> <p>私の JavaScript は次のとおりです:</p> <pre class="brush:php;toolbar:false;"><script> $.ajax({ タイプ:「POST」、 url: "/", // 実際のビューの URL に置き換えます データ: { input_value: "テスト", csrfmiddlewaretoken: "{{ csrf_token }}" }、 成功: 関数(応答) { title = response // リクエスト後のレスポンスは { "data" : {"title":"t1", "price":20} } となります }、 エラー: function() { console.log("エラー") } }); <script></pre> <p>それが可能かどうかはわかりません。 element.innerHTML を使って更新する人もいますが、私は jinja 形式で送信する必要があります。ありがとうございます</p>
P粉891237912P粉891237912475日前440

全員に返信(1)返信します

  • P粉403804844

    P粉4038048442023-08-18 10:45:59

    ここでは好みに応じて 2 つのオプションがあります。

    1. JSON の代わりにテンプレートを返す ここでの考え方は、サーバー側でテンプレートを生成し、生成された HTML を AJAX 呼び出し元に返すことです。したがって、Ajax の成功は、この HTML フラグメントを正しい場所に追加するだけです。

    2. JS で div をレンダリングする JSON 戦略しかない場合、または DRF を使用する場合、唯一の方法は、ループを使用して受信したアイテムをループし、同等の HTML を生成してドキュメントに追加することです。

    JinJa を同じページに配置することはできません。レンダリングするページを生成するとき、まだデータを受け取っていないからです。

    返事
    0
  • キャンセル返事