2011-06-29 7 views
1

success_urlがモデルによって決定された場合、以下のように汎用ビューをカスタマイズできます。success_urlがDjangoのモデル自体と無関係の場合

def get_success_url(self): 
    return '/object/%s' % (self.object.id) 

しかしsuccess_urlは、我々は、フォームのページを入る前のページに戻りたいような、モデルと無関係である場合。詳細ページ、リストページ、その他何でもかまいません。紹介URLをフォームに保存できますか?任意のアイデアが評価されます。

〜ハンソン

答えて

1

私は成功のページには、常にそうでないあなただけのget_success_urlreverse()ようなもので、URLが含まれる可能性が同じではないことを前提としています。 動的リダイレクトの場合は、フォームに非表示の入力にURLを追加するか、フォームが投稿されたURLのクエリー文字列にURLを追加するように指定することもできます(例:/myurl?next=/redirect-url/)。次に、あなたのビュークラスで次のような何かを行うことができます:

# url is in the form in a hidden input 'next' 
def get_success_url(self): 
    return request.POST['next'] 

# url is in the query string ?next=xxxx 
def get_success_url(self): 
    return request.GET['next']