1

3 つのボタン (チェックアウト ボタン、数量変更ボタン、キャンセル ボタン) で終わるページがあります。

<button name="checkout" onclick="location.href='/checkout/'"    >checkout  </button>
<button name="change"   onclick="location.href='/change-qty/'"  >change qty</button>
<button name="cancel"   onclick="location.href='/cancel-order/'">cancel    </button>

各ボタンを別の Django ビューにリダイレクトしたいので、フォームを使用する代わりに、この方法でこれらのリダイレクトを行っています。上記のコードは問題なく動作しますが、RESTful ではありません。「checkout」と「cancel-order」はシステムの状態を変更するため、これらを POST にしたいと考えています。

これは、「チェックアウト」ビューと「キャンセル」ビューで、専用フォームを POST を受け取る 2 つの新しいビューに自動投稿することで実現できます。しかし、それは非常に面倒で、複雑さを増しています。ページに jQuery を追加して、これらのボタンのそれぞれが、適切なビューを指す非表示のフォームで POST をトリガーするようにして、同じことを達成することもできます。しかし、これも非常に単純に見えるものに対して非常に多くの余分なコードです。

本当に、ボタンに 'method="post"' のようなものがあれば完璧です。しかし、ありません。私が望むものを達成するためのエレガントなパターンはありますか? それとも、私は非常にばかげたことをしていて、それを知らないだけですか?

4

1 に答える 1

1

を使用jquery-ujsして、「data-」属性をリンクに追加します。

<a href="/change-qty/" data-method="post">change qty</a>

目立たない JavaScript は、正しいコードをリンク/ボタン/その他に挿入します。

于 2012-10-20T19:21:56.507 に答える