2011-01-14 4 views
1

middlewareとビューの間に何かがあるので、私のコードを接続することができますか、またはこの機能を提供するためにDjangoから何かをサブクラス化する必要がありますか?Djangoにミドルウェアとビューの間に何かがあるので、自分のコードをプラグインできますか?

なぜ私はこれが必要なのかをまず説明しておきましょう。おそらくあなたが提案できるより良い解決策があります。私はいくつかの設定に基づいて私のURLのいくつかを制限したい。そして、 - 私はこの設定をURL設定の一部にします - 提供された設定によると、私は他のいくつかのビューにリダイレクトしたいと思います。

「部分的なURL構成」とは、次のようなものです。

url(r'^admin/blah/blah$', do_something, name='admin-blah-blah', {'security_level': 'very_secure', 'auth_method' : 'oauth', 'auth_url', 'http://www.foo.com'}) 

ミドルウェアで実行する必要があるようですが、ミドルウェアでは2つの理由で実行したくありません。 - 別の設定を維持したくありません。 - URLパターンの正規表現をもう一度実行したくない場合は、url resolverは既にそれを実行しています

表示する直前にいくつかの機能をプラグインする方法を見つけることができ、それは私の問題を解決する。あなたはあなたの意見にデコレータでこれを行うことができますように

答えて

4

サウンズ:

@restrict_url(security_level='very_secure', auth_method='oauth', 
       auth_url= 'http://www.foo.com') 
def my_view(request): 
    ... etc ... 

あなたはdjango.contrib.auth.decoratorsで提供するものを見て、restrict_urlデコレータを作成する方法のいくつかのアイデアを得ることができます。

+0

それはエレガントです、私は最初にdjangoドキュメントを読む必要があります:指摘のおかげで。 –

関連する問題