这是一个棘手的问题,所以在假设它是重复的之前请阅读:)。
我在Django 网站上使用Braintree Payments ,付款表单html 的信用卡号需要如下所示:
<input type="text" size="20" autocomplete="off" data-encrypted-name="number" />
我的目前看起来像这样:
<input type="text" size="20" autocomplete="off" name="number">
我可以以某种方式重命名name
为data-encrypted-name
吗?或者,我可以name
完全隐藏/删除该属性吗?如果是这样,我可以轻松地为 Braintree-friendly 属性添加一个自定义属性:
class SignupForm(forms.Form):
...snip...
def __init__(self, *args, **kwargs):
super(SignupForm, self).__init__(*args, **kwargs)
self.fields['number'].widget.attrs['data-encrypted-name'] = "number"
仅供参考,我试过这个__init__
但没有运气:
self.fields['number'].widget.attrs['name'] = None
每布伦特里:
重要提示:请勿将 name 属性用于捕获敏感支付信息(如信用卡号或 CVV)的任何字段。删除此属性可防止它们以纯文本形式访问您的服务器,从而减少您的 PCI 合规范围。
另外,我正在使用 django脆表单,所以我宁愿在我的forms.py
而不是在模板中通过 html 调整来解决这个问题,以保持它干燥。