これはタイトルを付けるのが難しい質問だったので、重複していると考える前に読んでください:)。
私は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 に適した属性のカスタム属性を簡単に追加できます。
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
ブレインツリーごと:
重要: クレジット カード番号や CVV などの機密性の高い支払い情報を取得するフィールドには name 属性を使用しないでください。この属性を削除すると、プレーン テキストでサーバーにアクセスできなくなり、PCI コンプライアンスの範囲が狭まります。
また、私は djangoクリスピー フォームforms.py
を使用しているので、DRY に保つために、HTML の微調整を使用してテンプレートではなく、自分でこれを解決することをお勧めします。