-1

以下に示す home.pt テンプレートに詳細が記載された 1 つのページ (ホーム) のみを含む、非常に単純なピラミッド/パイロン Web アプリがあります。

 <form action="/" method="post" accept-charset="utf-8" enctype="multipart/form-data">
<fieldset>
<div>
<input type="radio" name="myradio" value="left" id="choice1"/>
<label for="choice1">Choice1</label>
<input type="radio" name="myradio" value="right" id="choice2"/>
<label for="choice2">Choice2</label></div>
<p>Form Controls</p>
<input type="submit" name='form.submitted' value="Submit"/>
<input type="reset" value="Reset"/>
</fieldset>
</form>

これはそれに関連付けられたビュー構成です:

@view_config(route_name='home', renderer='templates/home.pt')
def home(request):
    choices=random.sample(ranges.items(),2)
    choice1=choices[0]
    choice2=choices[1]
    output=request.GET["myradio"]
    return {'choice1':choice1,'choice2':choice2, 'output':output, "myradio":myradio}

これは私に簡単なKeyError: 'myradio'.

編集: 詳細が必要な場合は、お気軽にお問い合わせください。

4

2 に答える 2

1

を実行するだけでrequest.POST.get('myradio')、どちらが選択されているかに応じて「左」または「右」が返されます。

于 2013-10-16T20:52:07.217 に答える
0

わかりましたので、これを修正するために私がしたことは次のとおりです。

それ以外の

output=request.GET["myradio"]

私は今持っています

post_data=request.POST
output=post_data.get('myradio')

もちろん、フォームをgetフォームに変更する必要もありました(上記の質問で更新されました)

これにより、左ボタンを選択して送信すると「左」の出力が得られ、右ボタンを選択して送信すると「右」の出力が得られます。

于 2013-10-17T03:30:33.740 に答える