1

Django eコマースページの支払いフォームを作成していて、保存されたクレジットカード情報を扱う状況に遭遇しました.

使用するアクションをサーバーに通知したい場合、最初の入力とボタンを独自の形式でラップする必要がありますか? または、以下のコードを使用できますか?

 {% 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値を持つ属性の存在をテストする必要があります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" />

そして、djangoビューに応じてrequest.POST['action']、フォームを保存するか、処理をキャンセルします。

于 2012-09-12T04:17:09.360 に答える