20

次の構造を使用する必要がありますか?

def PageObjects(request): 
    q = bla_bla_bla(bla_bla) 
    answer = request.POST['value'] 


<form action="PageObjects" method="get">
       <select >
        <option selected="selected" disabled>Objects on page:</option>
        <option value="10">10</option>
        <option value="20">20</option>
        <option value="30">30</option>
        <option value="40">40</option>
        <option value="50">50</option>
       </select>
       <input type="submit" value="Select">
  </form>

どうすればこの問題を解決できますか? 何を書く必要がありますか?

4

3 に答える 3

21

のように、タグに名前を付けます

<select name="dropdown">
    <option selected="selected" disabled>Objects on page:</option>
            <option value="10">10</option>
            <option value="20">20</option>
            <option value="30">30</option>
            <option value="40">40</option>
            <option value="50">50</option>
    </select>

次のようにビューでアクセスします

def PageObjects(request): 
    q = bla_bla_bla(bla_bla) 
    answer = request.GET['dropdown'] 
于 2012-07-20T20:14:41.400 に答える
12

郵送でデータを送信することをお勧めします。

<form action="PageObjects" method="post">
  <select >
    <option selected="selected" disabled>Objects on page:</option>
    <option value="10">10</option>
    <option value="20">20</option>
    <option value="30">30</option>
    <option value="40">40</option>
    <option value="50">50</option>
  </select>
  <input type="submit" value="Select">
</form>

そして、cleaned_data辞書を介してフォームの値にアクセスする必要があります。

def page_objects(request):
  if request.method == 'POST':
    form = YourForm(request.POST)

    if form.is_valid():
      answer = form.cleaned_data['value']

Django のドキュメントを読むことを強くお勧めします:

https://docs.djangoproject.com/en/1.4/topics/forms/#using-a-form-in-a-view

于 2012-07-20T20:55:45.090 に答える
2

「your_app_folder」内にファイル forms.py を作成します

forms.py で:

class FilterForm(forms.Form):
    FILTER_CHOICES = (
        ('time', 'Time'),
        ('timesince', 'Time Since'),
        ('timeuntil', 'Time Untill'),
    )

    filter_by = forms.ChoiceField(choices = FILTER_CHOICES)

views.pyで

from .forms import FilterForm

def name_of_the_page(request):
 form = FilterForm(request.POST or None)
 answer = ''
 if form.is_valid():
  answer = form.cleaned_data.get('filter_by') 
  // notice `filter_by` matches the name of the variable we designated
  // in forms.py

このフォームは、次の html を生成します。

<tr><th><label for="id_filter_by">Filter by:</label></th><td><select id="id_filter_by" name="filter_by" required>
<option value="time" selected="selected">Time</option>
<option value="timesince">Time Since</option>
<option value="timeuntil">Time Untill</option>
</select></td></tr>

属性が選択されたオプション フィールドに注意してください。フォームを送信すると、views.py ファイルselectedで次の行で属性からデータを取得します。

answer = form.cleaned_data.get('filter_by')
于 2016-09-08T02:24:21.677 に答える