2012-05-02 24 views
0

私は、テキスト入力フィールドとチェックボックスを作成するテンプレートを持っています。チェックボックスをオフにすると、テキストフィールドは無効にされ、クリアされ、チェックされると有効になり、ユーザーは入力したかどうかを確認できます。私のコントローラーでは、チェックボックスのチェックを外してチェックボックスをオンにしても、テキストフィールドが空白の場合は2つの数字を区別する必要があります。テキストフィールドの値は取得できますが、チェックボックスの値は取得できません。これを行うにはいくつかの方法がありますか?私はこれをgoogledして、私はそれがここで数回尋ねられているのを見るが、解決策のどれも私のために働くようだ。コントローラのチェックボックス値の取得

+1

コードを表示してください。チェックボックスがオンになっているかどうかを確認することは、かなり基本的なフォームタスクです。 –

+1

コードはいいですね。また、Django Debug Toolbarの使用を検討してください。これがjQuery(または他のJS)関連の状況であれば、Firebugはあなたの友人です。 –

+0

おそらく私の質問は明確ではありません。チェックボックスの作成やjQueryコードの状態の取得に問題はありません。私は自分の状態を私のPythonコントローラに戻す必要があります。 –

答えて

1
request.POST.get('my_checkbox_field') 

P.S. Djangoでは、コントローラではなく「ビュー」と呼ばれています。

(コメントに基づく)UPDATE

私は、Djangoは、コントローラの概念を持っていないと、彼らはビューに近いですので、「ビュー」を意味する「コントローラ」を取っています。そうでない場合は、是非私を修正してください。それで、の関数ベースのビューは、少なくともにはrequestパラメータが必要です。クラスベースのビューを使用している場合は、requestが単にビューオブジェクトに格納されるため、self.requestに変更するだけです。私はあなたが徹底的にドキュメントを読むためにもう少し時間を取ることをお勧めします。

+0

それは私に与えます:*** NameError:name 'request'は定義されていません –

+0

ビューはHTMLをレンダリングさせるテンプレートではありませんか?コントローラはデータを選択するPythonコードですか? –

+0

いいえ、Djangoは緩やかなMVCを使用しています。モデル、ビュー、テンプレートがあります。ビューとテンプレートは、それぞれMVCのコントローラとビューに対して* close *ですが、厳密にはそうではありません。 –

1

これはお探しですか?

def myview(request): 
    form = MyForm() 

    if request.method == 'POST': 
     form = MyForm(request.POST) 

     if form.is_valid(): 
      checkbox = request.POST.get('my_checkbox', False) # will be True if checked 

      if checkbox: 
       # check textfield content 
      else: 
       # do something else 

      return render_to_response(template, kwvars, context_instance=RequestContext(request))