2011-02-04 17 views
0

ありがとうございました。ユーザーが選択したイベントを チェックボックスを使って削除しようとしています。しかし、 の場合は、request.POST.get( 'event_list')を呼び出すときに何らかの理由があります。ボックスがチェックされても何も返されませんが、 は受信されません。 ここにテンプレートと、選択した イベントを削除するビューがあります。私のDjangoテンプレートでチェックボックスフォームを使用しているときにPOST応答がありません

{% if event_list %} 
     {% for event in event_list%} 
       {%csrf_token%} 
       <input type="checkbox" name="event_list" 
id="event{{ forloop.counter }}" /> 
       <label for="event{{ forloop.counter }}">{{ event.title }}</ 
label><br /> 
     {% endfor %} 
     <input type = 'submit' value = 'delete checked'> 
     </form> 
     <p>{{removal}}<p/> {%comment%} this is what should be 
removed{%endcomment%} 
     {% if delete_error %} 
       <p>{{delete_error}}</p> 
      {% endif %} 

views.py

def EventDelete(request): 
     removal = request.POST.get('event_list') 
     if removal: 
       removal.delete() 
     else: 
       delete_error = "You didn't delete anything" 
     return redner_to_response("detail.html", {'delete_error': 
delete_error, 'removal': removal}, 
context_instance=RequestContext(request)) 

イム除去は、それには何も持っていない理由、それは その中のイベントのタイトルを持つべきではないかわかりませんか?残念ながら、私はHTMLとその動作に関することはあまり知らない:(私は本当に助けを感謝するだろう:)私はそれが簡単な修正と私はちょうど小さな詳細が欠けているように感じる。ありがとう:)

+1

redner_to_responseはrender_to_responseである必要があります。 –

答えて

0

チェックボックスは値を持たないので、サーバーに送信されるだけです。

この:

<input type="checkbox" name="event_list" 
id="event{{ forloop.counter }}" /> 

<input type="checkbox" name="event_list" 
id="event{{ forloop.counter }}" value="{{ forloop.counter }}" /> 

を読み、(サーバがIDのリストを受け取った後)、それは間違って見える処理するためのコードする必要があり、あなたが何らかの形でロードする必要がありますidsのリストを作成し、削除するものを整理します。あなたはおそらく何かをしたいと思うでしょう

removal = request.POST.get('event_list') 
for id in removal: 
    event = get_object_or_404(Event, pk=id) 
    event.delete() 

私はあなたが学ぶために公正なビットがあると思います!実際にサーバーに送り返されているものを監視するには、firebugをチェックしてください。 w3schools to learn about formsに移動し、削除処理のためのdjangoのドキュメントを読んでください。

関連する問題