2016-10-07 4 views
0

Im Python27Django 1.5を使用しています。モデルを使用せずにDjango 1.5テンプレートからユーザの選択を読む

私は何時間もインターネットを成功させていない。ユーザーがモデルを使用せずにテンプレートのドロップダウンリストボックスから選択したものをキャプチャする方法はありますか?私は、ある種類のvarをviews.pyのコードに直接読み込む方法を探しています。私が選択するすべてのオプションは、私は私のviews.pyにVARに

views.py

def my_view(request): 
    ... 
    num_select = forms.????.get['num_select'] 
    ... 
    return blah blah.... 
を値を渡したい

example.html

<select name="num_select"> 
    <option value="0">-----</option> 
    <option value="10">1 - 10</option> 
    <option value="20">10 - 20</option> 
    <option value="30">20 - 30</option> 
    <option value="40">30 - 40</option> 
    <option value="all">all</option> 
</select> 

私はあなたが私を助けるために十分な詳細を提供してくれることを願っています。他に何が追加できるかわからない私は成功していないドキュメントのページを見てきました。私はviews.pyからhtmlのテンプレートにvarsを取​​得する方法を知っていますが、その逆はできません。

お願いします。

+0

は 'print(forms)'や 'print(dir(forms))'を使ってフォームにあるものを見ることもできます。返信ありがとう。 – furas

+0

私が必要とするものを得るために、これをどう使うべきかわからない。以下のように見れば、私はいいはずだと思います。ありがとう! – New2Python

+0

'dir(object)'はオブジェクト内のすべての関数と変数を返します。名前を記憶しておらず、IDEにオートコンプリートを使わないと便利です。 – furas

答えて

0

あなたはそれがすべて与えられたHTTPのPOSTパラメータを含む辞書ライクなオブジェクトですHttpRequest.POST API

https://docs.djangoproject.com/en/1.10/ref/request-response/#django.http.HttpRequest.POST

を使用して、生のフォームデータを読み取ることができます。

あなただけrequest.POST['num_select']

request.POST

+0

これは面白そうに見える...間違いなくこれで周りに遊ぶ。ありがとう! – New2Python

1

を使用する前にif request.method == 'POST':を含めることを忘れないでくださいことができますはい、あなたは、単純なdjango formで必要なものを、まったくこのためのモデルを必要としません。

あなたのビューで次に
CHOICES = ((1,"10"), (2,"20"), ...) 

class MyForm(forms.form): 
    ... 
    num_select = forms.ChoiceField(choices = CHOICES) 
    ... 

from myapp.forms import MyForm 

def my_view(request): 

    if request.method = 'POST': 
     form = MyForm(request.POST) 
     if form.is_valid(): 
       num_select = form.cleaned_data['num_select'] 

これは、追加情報については、上記のリンクを参照してください、もちろんそれをむしろストリップダウンバージョンです。

フォームを使用したくない場合は、request.POSTに直接アクセスできますが、Djangoを使用するポイントは何ですか?

+0

dah!ほとんどそこにいた。これは私が必要とするものであるように見えます。ありがとうございました。 – New2Python

関連する問題