私は、テキスト入力フィールドとチェックボックスを作成するテンプレートを持っています。チェックボックスをオフにすると、テキストフィールドは無効にされ、クリアされ、チェックされると有効になり、ユーザーは入力したかどうかを確認できます。私のコントローラーでは、チェックボックスのチェックを外してチェックボックスをオンにしても、テキストフィールドが空白の場合は2つの数字を区別する必要があります。テキストフィールドの値は取得できますが、チェックボックスの値は取得できません。これを行うにはいくつかの方法がありますか?私はこれをgoogledして、私はそれがここで数回尋ねられているのを見るが、解決策のどれも私のために働くようだ。コントローラのチェックボックス値の取得
答えて
request.POST.get('my_checkbox_field')
P.S. Djangoでは、コントローラではなく「ビュー」と呼ばれています。
(コメントに基づく)UPDATE
私は、Djangoは、コントローラの概念を持っていないと、彼らはビューに近いですので、「ビュー」を意味する「コントローラ」を取っています。そうでない場合は、是非私を修正してください。それで、の関数ベースのビューは、少なくともにはrequest
パラメータが必要です。クラスベースのビューを使用している場合は、request
が単にビューオブジェクトに格納されるため、self.request
に変更するだけです。私はあなたが徹底的にドキュメントを読むためにもう少し時間を取ることをお勧めします。
それは私に与えます:*** NameError:name 'request'は定義されていません –
ビューはHTMLをレンダリングさせるテンプレートではありませんか?コントローラはデータを選択するPythonコードですか? –
いいえ、Djangoは緩やかなMVCを使用しています。モデル、ビュー、テンプレートがあります。ビューとテンプレートは、それぞれMVCのコントローラとビューに対して* close *ですが、厳密にはそうではありません。 –
これはお探しですか?
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))
コードを表示してください。チェックボックスがオンになっているかどうかを確認することは、かなり基本的なフォームタスクです。 –
コードはいいですね。また、Django Debug Toolbarの使用を検討してください。これがjQuery(または他のJS)関連の状況であれば、Firebugはあなたの友人です。 –
おそらく私の質問は明確ではありません。チェックボックスの作成やjQueryコードの状態の取得に問題はありません。私は自分の状態を私のPythonコントローラに戻す必要があります。 –