2010-07-29 121 views
0

我有,有一個按鈕,一個模板,帖子只是按鈕的名稱,它具有以下代碼視圖:Django的模型檢索給出錯誤類型的錯誤

if request.POST: 
    a = request.POST 
    name = mymodel.objects.get(id = a)[0] 
     return HttpResponse(name) 

request.POST有按鈕的名稱提交了帖子。錯誤是:int()參數必須是一個字符串或一個數字,而不是'QueryDict'

但是,當我這樣做:a = request.POST['name],Django在post error中產生一個no'name'。我該如何解決?

回答

0

最簡單的方法是使用隱藏字段。按鈕不是真正的移動數據的好方法。

3

這會返回一個QueryDict(類似Python字典)的數據在它 request.POST

反正

request.POST['name'] 

應該工作。 我會說這裏沒有關鍵'名字'。也許它被稱爲'id_name'或類似的東西。

看一看一個查詢字典的一個調試器或打印聲明內容:

print request.POST 
+0

我跟着烏爾的QueryDict鏈接,並在我的view.py把這個: '返回的HttpResponse(a.items())' 此打印出來:(u'6' ,u'Delete')。 Delete是按鈕的名稱,6是值。如何翻轉這些以便我可以使用request.POST ['刪除']? – Ali 2010-07-29 17:26:35

+1

向我們顯示您的表單和模板代碼 – chefsmart 2010-07-29 17:29:00

1

想象一下下面的代碼是在您的模板: -

<form> 
    <button type="submit" name="option_one" value="option_one">Option One</button> 
    <button type="submit" name="your_second_option" value="your_second_option">2nd Option</button> 
</form> 

你可以這樣做這在你看來: -

def your_view(request): 
    if request.POST.has_key('option_one'): 
     #do your stuff 
    if request.POST.has_key('your_second_option'): 
     #do other stuff