2016-03-26 12 views
0
def my_view(request, my_id): 
    myItem = Item.objects.get(pk=item_id) 
    context = {'myitem': my item} 
    #This is where I send a POST request from a button named myButton with a value="OK". 
    if request.method == "POST": 
     if 'OK' in request.POST: 
      return render(request, 'url1', context)`enter code here` 
    else: 
     return render(request, 'url2', context) 

上記は私のコードです。 request.POSTを印刷すると、実際には値がOKになります。それでも、Pythonはif節を実行しません。 request.POSTViewがHttpResponseオブジェクトを返さなかったというエラーが発生します。それは返されていません

出力は次のとおりです。

<QueryDict: {u'submit': [u'OK'], u'csrfmiddlewaretoken': [u'#####']}> 
+0

request.POSTの出力を表示してください。 –

答えて

1

私の知る限り、request.POST辞書構造を有しています。それは鍵と価値を持っています。それは、このようなキーを持っていない場合request.POST.getNoneを与えるので

if request.POST['key'] == 'OK': 

か、これは

if request.POST.get('key') == 'OK': 

良いでしょう場合request.POST{'key': 'OK'}を持っていると仮定すると、条件文は適切であろう。

+0

こんにちはLeonard2、リクエストにキーがあります.POST。実際、まったく同じシナリオは、異なるフォームとビューで動作しました。ここで働いていないだけです。 – swdon

+0

他の問題があるかもしれませんが、 '' OK.POST'は '' False''になります。 {'key': 'val'} 'の' val 'が 'False'を返すことを確認できます。 – Leonard2

+0

ありがとうございます。あなたのソリューションをありがとう、私はそのように実装し、それが動作すれば答えを受け入れる。別のメモで、いつ私が 'val'をリクエストで使うことができますか.POST条件付き? – swdon