2016-03-03 63 views
1

我想單擊/circle頁面中的藍色div,將值「niloofar」發送到/final,輸出必須是** niloofar **,但它不起作用。django POST數據不起作用

我該如何編輯它? 我想通過隱藏輸入發送值。

views.py:

from django.shortcuts import render 


def circle(request): 
    return render(request, 'circle.html') 


def final(request): 
    matn = request.POST.get("title", "") 
return render(request, 'final.html', {'matn': matn}) 

circle.html:

<html> 
<head> 
<style> 
div { 
    width:100px; 
    height:100px; 
    background:lightblue; 
} 
</style> 
</head> 

<body> 
<a href="/final"> 
    <div></div> 
    <input type="hidden" name="title" value="niloofar"> 
</a> 

final.html:

** {{ matn }} ** 

urls.py:

from django.conf.urls import include, url 
from secondv.views import circle, final 

urlpatterns = [ 
    url(r'^circle/', circle), 
    url(r'^final/', final), 
] 
+0

好吧,你在哪裏定義'message'? *什麼*不起作用?錯誤?結果無效? – Sayse

+0

我編輯了我的問題。 – niloofar

+0

只有該值不會出現錯誤,只會啓動。 – niloofar

回答

3

您不能從鏈接中獲得POST。將其更改爲使用form代替:

<style> 
.mysubmit { 
    width:100px; 
    height:100px; 
    background:lightblue; 
} 
</style> 

<form action="/final" method="post">{% csrf_token %} 
    <input type="hidden" name="title" value="niloofar"> 
    <input type="submit" class="mysubmit" value=""> 
</form> 

也更改您的視圖來:

def final(request): 
    matn = request.POST.get("title", "") 
    return render(request, 'final.html', {'matn': matn}) 
+0

所以你的意思是我創建一個提交按鈕,並給它的風格,而不是創建div,對不對?但是如果我想使用圖像而不是div呢? – niloofar

+0

您可以使用圖像作爲提交按鈕。看到這個答案:http://stackoverflow.com/a/14199891/2011147 – Selcuk

+0

我已經編輯我的文件,因爲你提到,但我面臨的eror:'禁止(403)''CSRF驗證失敗。請求中止「設置cookie是什麼意思? '幫助:失敗原因:未設置CSRF cookie「。爲什麼cookie b eimpoertant在這裏? – niloofar

2

您使用<a>,這將發出一個 'GET' 請求。 要提交POST你必須使用一個`

<form action='/final' method='post'> 
    <input type="hidden" name="title" value="niloofar"> 
    <input type="submit" /> 
</form>