2017-01-31 35 views
1

我有我的模板獲得的值:Django的,從POST

This is passed by {{form}} 

    <form action="" method="POST"> 
     Inicio: <input type="text" id="start"> 
     <input type="submit" value="Sned" > 
    {% csrf_token %} 
    </form> 
在views.py

然後

def test(request): 

    if request.method != 'POST': 
     context = {'form': 'by GET'} 
     return render(request, 'test.html', context) 
    else: 

     if 'start' in request.POST: 
      start = request.POST['start'] 
     else: 
      start = False 


    context = {'form': start} 
    return render(request, 'test.html', context) 

似乎總是返回False

如果我不檢查密鑰的存在我有這個錯誤:

MultiValueDictKeyError 

而且erropage說: 「 '開始'」(單加雙引號)

回答

4

id適用於JavaScript和CSS的目的。對於服務器端重要的變量,應使用name標記。

<input type="text" id="start" name="start"> 
+0

非常感謝你:) – Alexev

+0

你可以把它標記爲正確答案 – hspandher

+0

也做到了,但不知它仍沒有被標記爲綠色,當我嘗試做一遍它說生病不得不等待10分鐘後10 – Alexev

2

加名

<input type="text" name="start" id="start"> 
3

您需要在輸入中添加一個name屬性,因此當您獲取POST數據時,它將被找到。

<form action="" method="POST"> 
    Inicio: <input type="text" id="start" name="start"> 
    <input type="submit" value="Sned" > 
    {% csrf_token %} 
</form> 

此外,我建議你做如下改變你的觀點:

更換

request.POST['start'] 

由:

request.POST.get('start') 

所以,如果現場沒有找到,它將被重新分配一個None值。

+0

非常感謝你 – Alexev

+0

我的榮幸,如果它有幫助,請upvote我的答案。 –