2012-09-11 7 views
0

장고 전자 상거래 페이지의 결제 양식을 작성하면 저장된 신용 카드 정보를 처리하는 상황에 처했습니다.html <input type = hidden> 값을 덮어 씁니다.

내 서버에 어떤 작업을 신호로 보내고 싶으면 첫 번째 입력과 버튼을 자체 양식으로 포장해야합니까? 또는 아래 코드를 사용할 수 있습니까?

{% 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

일반적으로 양식을 제출하거나 취소하려면 양식에 다음을 추가하십시오.

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

그리고 장고에서 request.POST['action']에 따라 당신이 중 하나를 양식을 저장 처리하거나 처리를 취소 할 것입니다 볼 수 있습니다.

+0

좋은 생각이라고 생각하지 마십시오. 사용자가 입력 필드에 'enter'키를 누르면 어떻게됩니까? –

0

다른 컨트롤이 동일한 이름의 매개 변수를 보내고 서버 측에서 상황을 확인할 수 있다는 점을 제외하면 숨겨진 필드를 HTML로 재정의 할 수 없습니다.

경우 가장 간단한 방법은 숨겨진 필드를 사용하지 않고

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

같은 체크 박스를하는 것입니다. 그런 다음 서버 측 코드는 delete_card 값을 갖는 action 속성이 있는지 테스트해야합니다.

name="action="과 같이 등호 기호를 사용하는 것은 가능하지만 일반적이거나 필요하지 않습니다. 양식을 제출하면 name = value 양식의 데이터 항목이 생성되어 action==delete_card이됩니다.

+0

브라우저에서 중복 된 이름 매개 변수를 삭제합니까? – lol

관련 문제