2012-10-02 141 views
2

我使用的是Django,我無法在不修改url的情況下將變量信息傳回服務器。下面是我有工作我想除了我想要的動作爲/ foo的方式:當我做到這一點我可以輕鬆地獲得該變量時我解析URLdjango的額外POST數據

<form method="post" action="/foo/{{ variable }}"> 
    <input type="submit" value="bar"/> 
</form> 

。相反,我想將該變量添加到POST QueryDict。這可能嗎?

回答

3

是的。只需添加額外的輸入字段:

<form method="post" action="/foo/"> 
    <input type="hidden" value="{{ variable }}" name="name_of_var"> 
    <input type="submit" value="bar"/> 
</form> 

然後,您可以通過訪問變量視圖:

request.POST['name_of_var'] 

,或者如果你是不知道,如果變量存在。這不會引發異常不存在。

<input type="hidden" name="varname" value="myvalue" /> 
+1

沒有輸入的名稱。 –

+0

好點。忘了那個。 thanx – miki725

+0

request.POST.name_of_var和request.POST ['name_of_var']之間有什麼區別? – Alison

0

只要你需要像這樣的名稱和值添加一個隱藏的輸入元素?您可以隱藏它以避免覆蓋它。這將在提交中發佈數據並實現您想要的內容。

0

你能不能把這些變量在表單的輸入域:

request.POST.get('name_of_var') 
3

只是要輸入你的表單中:

<input type="hidden" value="{{ variable }}" name="foo" /> 

然後在一個視圖:

foo = request.POST.get('foo', None) 

另外,我建議你使用url tagaction

0

這不就是Django會話框架的用途嗎?你可以傳遞數據而不用通過url傳遞數據。

會話框架允許您以每個站點訪問者爲基礎存儲和檢索任意數據。它將數據存儲在服務器端並提取Cookie的發送和接收。

https://docs.djangoproject.com/en/1.5/topics/http/sessions/

+0

NM這不是OP想要做的。 – andy