-2

ブートストラップ ポップオーバーを使用して小さなフォームをポップしています。{% csrf_token %} を JavaScript ポップオーバー内で動作させるにはどうすればよいですか。

$('.delete_btn').popover({ 
      html: 'true', placement: 'top', title: 'Are you sure?', 
      content: '<form action="{{object.get_delete_url}}" method="post">
               {% csrf_token %}<div><input type="hidden" name="next" value="" />
               <input type="submit" class="btn btn-danger" value="Confirm" />
               </div></form>' 
    });

よろしくお願いします

編集:

これで、csrf_token の問題は解決しましたが、絶対 URL の取得に関する問題を解決できませんでした。

4

1 に答える 1

1

私は数日前に同じ問題に遭遇しました。あなたは答えを見つけたと言いましたが、この問題に出くわす可能性のある他の人のためにここに投稿したほうがよいと思いました.

django が csrf トークン タグを html に配置すると、非表示の html タグが作成されます。私が遭遇した問題は、一重引用符でそうするということです:

<input type='hidden' name='csrfmiddlewaretoken' value='sometokeninhere' />

二重引用符は標準であるため、これは私には少し奇妙です。現在、これらの一重引用符の背後にある理由を調査しています。私が遭遇した別の問題は{{ form.variable1 }}、ポップオーバーに入れていた django 変数 (つまり ) が、二重引用符で囲まれた入力タグとしてレンダリングされていたことです。失敗。したがって、私が使用した修正は、コンテキストから csrf トークン変数を取得し、それを使用して独自の非表示の入力を作成し、次のものに置き換えること{% csrf_token %}です。

<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}" >
于 2013-07-06T06:03:56.610 に答える