1

コードをプラグインできるようにとviewの間に何かがありますか、それともこの機能を提供するためにmiddlewareから何かをサブクラス化する必要がありますか?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リゾルバーはすでにそれを行っています

したがって、表示の直前にいくつかの機能をプラグインする方法を見つけて、提供された構成に到達できれば、問題は解決します。

4

1 に答える 1

4

ビューのデコレータを使用してこれを行うことができるように聞こえます:

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

restrict_urlで提供されているものを見ると、デコレータの書き方のアイデアを得ることができますdjango.contrib.auth.decorators

于 2011-01-14T10:35:11.613 に答える