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"' のようなものがあれば完璧です。しかし、ありません。私が望むものを達成するためのエレガントなパターンはありますか? それとも、私は非常にばかげたことをしていて、それを知らないだけですか?