2011-10-18 17 views
1

html/djangoからサインアップフォームを作成しようとしているので、ユーザーがメール、ユーザー名、パスワードを入力して/ adduserにPOST経由で送信する3つの入力ボックスがあります。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は、新しいユーザーを作成し、DBに保存します:

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}) 

が、私は/サインアップに提出クリックしたとき、それは3が期待されていたとき、私はそれを1つのパラメータを与えていることに文句を言います。 email、username、およびpasswordフィールドをsignup.htmlからusername/usernameに渡すにはどうすればよいですか?

答えて

2

あなたがpart 3 of the tutorialを読めば、あなたはビュー機能は、引数としてURL自体の部分を期待していることがわかります。 part 4 of the same tutorialと読んだ場合は、request.POSTで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

あなたが探している単語は["mapping"](http://docs.python.org/library/stdtypes.html#mapping-types-dict)です。 –

関連する問題