1

我为 django 电子商务页面创建付款表单,但遇到了处理保存的信用卡信息的情况。

如果我想向我的服务器发出要使用什么操作的信号,我是否需要以自己的形式包装第一个输入和按钮?或者我可以使用下面的代码吗?

 {% if user.is_authenticated and user.get_profile.stripe_customer_id %}
        <input type="hidden" name="action=" value="delete_card"/>
        <button type="submit">Use Another Card</button>

        <input type="hidden" name="action=" value="pay_saved_card"/>


 {% endif %}
4

2 回答 2

1

您不能使用 HTML 覆盖隐藏字段,除非您可以让另一个控件发送具有相同名称的参数,然后服务器端检查情况。

这种情况最简单的方法是有一个复选框

<input type="checkbox" name="action" value="delete_card" id="othercard" />
<label for="othercard">Use Another Card</label>

不使用隐藏字段。然后,服务器端代码应该只测试是否存在action具有 value 的属性delete_card

在中使用等号name="action="可能但不常见或不需要:提交表单时,会生成表单 name=value 的数据项,因此您会得到action==delete_card.

于 2012-09-12T05:07:06.617 回答
0

通常,要提交或取消表单,需要在表单中添加以下内容。

<input type="submit" name="action" value="Cancel" />
<input type="submit" name="action" value="Save" />

并且取决于request.POST['action']在 django 视图中,您将处理保存表单或取消处理。

于 2012-09-12T04:17:09.360 回答