2011-11-14 6 views
2

レンダリングの方法からリダイレクトすることができるかどうか疑問に思っていました。ツイストされたウェブ - リクエストでリダイレクト

私はさまざまなリダイレクト方法を試してきましたが、getChildメソッドで使用された場合にのみ文書化されています。

基本的には、ユーザーがログインしているかどうかを確認しています。ユーザーがログインしていない場合は、ユーザーを別のリソースに転送します。

def render_GET(self, request): 
     player = getPlayer(request) 
     if player.loggedIn(): 
      return Redirect("play") 
     else: 
      return Redirect("login") 

私は全部見渡しましたが、私はねじれた文書について十分に文書化された例を見つけることができません。

これに私のアプローチを変更する必要があるかどうかわかりません。私はねじれたウェブを初めて使用しています。どんな助けでも大歓迎です。

答えて

7

謝罪

さらなる調査の際、私は私のために完全にこれは私のために働いてい

twisted.web.utilの「 redirectTo」方法を見落としていた私自身の障害により、ありがとう。他の誰かが同じ答えを探している場合に、私はこれをここに掲載すると思っていました。

from twisted.web.util import redirectTo 

    def render_GET(self, request): 
     player = getPlayer(request) 
     if player.loggedIn(): 
      return redirectTo("play") 
     else: 
      return redirectTo("login") 

種類は、これは私のために動作しません ジョー

+1

について。 Twistedバージョン間でメソッドが変更されたのか、コードがうまく動作しなかったのだろうか? [current code](http://twistedmatrix.com/trac/browser/trunk/twisted/web/util.py)はあなたが 'redirectTo'への呼び出しで' Request'を渡すことを期待しているので、 'return redirectTo( "play"、request) ' – RoundTower

+0

@RoundTowerはあなたの投稿に感謝します。私はもはやTwistedを使用していませんが、このコードは当時私のために働いていました。 APIで何か変更されている可能性があります。 –

+0

これはもはや動作しません。 'from twisted.web.util import Redirect; 'Resource'のサブクラスである' return Redirect(url) 'は、' redirectTo'は文字列を返します。これは 'render'メソッドがありません。 'Redirect.render'はあなたのために' redirectTo'を返します。 (ツイストバージョン14.0) – Perkins

関連する問題