我有一个以三个按钮结束的页面:结帐按钮、更改数量按钮和取消按钮:
<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 的新视图来实现这一点。但这太麻烦了,也增加了复杂性。我还可以在页面中添加一些 jQuery,并让这些按钮中的每一个在指向相应视图的隐藏表单上触发 POST,并实现相同的目的。但是,对于看起来很简单的东西,这也是非常多的额外代码。
真的,如果按钮上有类似 'method="post"' 的东西,那就完美了。但是没有。是否有一些优雅的模式可以实现我想要的?还是我在做一些非常愚蠢的事情而我只是不知道?