2011-06-30 7 views
1

djangoの表示に問題があります。私は、ビューを持ち、フォームを表示するURL /signup.htmlを持っています。このフォームの動作は/account/createになりますので、すべてが大丈夫ですが、私はコングラッツページにリダイレクトしますが、フォームが送信されたときは無効です。エラーの辞書で最後のURLに戻る必要があります。アドレスバーのURLをrender_to_responseしてアカウント/作成とし、/supup.htmlとする必要があります。テンプレートをレンダリングしてDjangoの特定のURLにリダイレクトする方法は?

def signup(request): 
    return render_to_response('main/signup.html' , {} , context_instance=RequestContext(request)) 

def create_account(request): 
    if request.method == 'POST': 
     form = FastSignupForm(request.POST) 
     if form.is_valid(): 
      new_user = form.save() 
      return redirect('/account/congratulations' , {} , context_instance=RequestContext(request)) 
    else: 
     form = FastSignupForm(); 

    return render_to_response('main/signup.html', {'form':form} , context_instance=RequestContext(request)) 

def congrats(request): 
    return render_to_response('main/congrats.html', {}, context_instance=RequestContext(request)) 

私が間違ってやっている:ここで

は、コードのですか?

EDIT: 私は複数のポスト提出をしたページをリロードし、私はこれを防ぎたいとき、私は、同じURL(signup.html)上で投稿する場合。

+0

これはコピー/ペーストしませんでしたか?私はあなたが 'form = FastSignupForm()'の後にセミコロンを持っていることに気づいたかもしれません。 –

+0

質問には全く関係ありません。 –

答えて

1

同じURL(signup.html)に投稿して、成功した場合にのみリダイレクトするのはなぜですか?

+0

私は同じURL(signup.html)で投稿します。提出し、私はこれを防止したい。 –

+0

@ Agusti-N残念ながら、エラーの辞書でURLをリダイレクトしようとするのは難しいです。この回答を参照してください:http://stackoverflow.com/questions/3209906/django-return-redirect-with-parameters/3210919#3210919 – NickAldwin

0

なぜ/account/createに行く必要があるのか​​混乱しています。あなたはこれを行うことはできません。

views.py

def signup(request): 
    if request.method == 'POST': 
     form = FastSignupForm(request.POST) 
     if form.is_valid(): 
      new_user = form.save() 
      return redirect('/account/congratulations' , {} , 
         context_instance=RequestContext(request)) 
    else: 
     form = FastSignupForm(); 

    return render_to_response('main/signup.html', {'form':form} , 
       context_instance=RequestContext(request)) 

def congrats(request): 
    return render_to_response('main/congrats.html', {}, 
       context_instance=RequestContext(request)) 

メイン/ signup.html

... 
<form method="post" action="."> 
    ... 
</form> 
... 

私はあなたが本当にに行く必要かどうかわからないんだけどcreate_account()かどうかを確認してください。そうしないと、これはうまくいくはずです。

+0

"私が同じURL(signup.html)を投稿すると、aiがページをリロードすると複数の投稿を投稿すると、これを防止したい」 – NickAldwin

+0

私は理解しません...もしフォームが有効でないなら、彼はとにかく複数の投稿を提出するでしょう。彼の場合、彼はリダイレクトする余分なステップを持っています –

関連する問題