2016-03-26 10 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) 

. Yazdırmak için request.POST alırsam, aslında sözlükte OK değeri vardır. Ve yine de, Python if cümlesini yürütmez. request.POST arasındaGörünümümün bir HttpResponse Nesnesi döndürmediği hatası alıyorum. Yukarıdaki kodum

Çıktı:

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

Lütfen isteğin çıktılarını gösterin.POST. –

cevap

1

AFAIK, request.POST sözlük yapıya sahiptir; Anahtar ve değer var. bu böyle anahtarı varsa None verir daha iyi

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

request.POST.get çünkü

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

veya bu olurdu request.POST{'key': 'OK'} sahip olduğunu varsayarsak, koşullu önerme uygun olacaktır.

+0

Merhaba Leonard2, istekte bir anahtar var.POST. Aslında, tam olarak aynı senaryo, farklı bir form ve bir bakış açısı ile çalıştı. Sadece burada çalışmıyor. – swdon

+0

Başka sorunlar da olabilir, ancak '' OK '' request.POST ''False' ile sonuçlanır. Bunu '' val '' içinde kontrol edebilirsiniz '' '' '' '' '' '' 'False' verir. – Leonard2

+0

Oh Görüyorum. Çözümleriniz için teşekkür ederim, bu şekilde uygulayacağım ve işe yararsa cevabı kabul ediyorum. Ayrı bir notta, yani 'val' isteğinizi ne zaman kullanabilirim.POST koşullu mu? – swdon