我正在为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 %}
答案 0 :(得分:0)
通常,对于提交或取消的表单,可以在表单中添加以下内容。
<input type="submit" name="action" value="Cancel" />
<input type="submit" name="action" value="Save" />
根据django视图中的request.POST['action']
,您可以处理保存表单或取消处理。
答案 1 :(得分:0)
您无法使用HTML覆盖隐藏字段,除非您可以让另一个控件发送具有相同名称的参数,然后服务器端检查该情况。
最简单的方法是使用
之类的复选框<input type="checkbox" name="action" value="delete_card" id="othercard" />
<label for="othercard">Use Another Card</label>
不使用隐藏字段。然后,服务器端代码应测试是否存在值为action
的{{1}}属性。
使用delete_card
中的等号可能但不常见或需要:提交表单时,会生成表单name = value的数据项,因此您将获得name="action="
。< / p>