2011-10-18 41 views
1

我想通過html/django做一個註冊表單,所以我有3個輸入框讓用戶放入電子郵件,用戶名和密碼,然後通過POST將它們發送到/ adduser通過與Django的帖子傳遞值

<form action="/OmniCloud_App/adduser" method="post"> 
{% csrf_token %} 
    Email Address: <input type="text" name="email" /></br> 
    Username: <input type="text" name="username" maxlength=25 /></br> 
    Password: <input type="password" maxlength=30 /></br> 
    </br> 
    <input type="submit" value="Send" /> <input type="reset"> 
</form> 

adducer創建一個新用戶,並將其保存到數據庫:

def adduser(request, email, username, password): 
    u = User(email=email, username=username, password=password) 
    u.save() 
    return render_to_response('adduser.html', {'email':email, 'username':username, 'password':password}) 

但是當我點擊提交/註冊,它抱怨說,我只是給它1個參數時,3人的預期。我應該如何將來自signup.html的電子郵件,用戶名和密碼字段傳遞給用戶名功能(位於/用戶名)?

回答

2

如果你讀part 3 of the tutorial,你會看到該視圖函數需要URL本身作爲參數的部分。如果您閱讀part 4 of the same tutorial,則會看到POST參數通過request.POST進入。進一步在文檔中,您將瞭解到您可以編寫處理HTML表單生成和驗證的Form類。

+0

好吧,所以我用它,但現在它說,密碼不是POST請求的一部分,但它似乎有電子郵件,用戶名和一些叫做csrfmiddlewaretoken的東西。爲什麼它不會發送表單的密碼字段? – Chris

+0

因爲你忘了給它一個名字。這是使用Django表單的另一個原因。 –

+0

你太好了。我會研究表單類,只是想通過該死的教程第一哈哈。謝謝一堆! – Chris

1

,他們將在request.POST,您可以查詢像你這樣一個dict

email = request.POST.get('email') 
username = request.POST.get('username') 
password = request.POST.get('password') 
+0

您正在尋找的詞是[「映射」](http://docs.python.org/library/stdtypes.html#mapping-types-dict)。 –