Django中间件和视图之间有什么东西可以插入我的代码吗?

时间:2011-01-14 09:58:27

标签: django url-routing django-views django-middleware

middleware和视图之间是否存在某些内容,以便我可以插入我的代码,或者是否必须从Django继承某些内容以提供此功能?

首先让我解释为什么我需要这个,也许有一个更好的解决方案,你可以建议。我想根据一些配置来限制我的一些网址。和,   - 我希望此配置成为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'})

似乎应该由中间件完成,但出于两个原因我不想用中间件来做。   - 我不想保持单独的配置。   - 我不想再为url模式进行正则表达式匹配,url解析器已经在做了

因此,如果我能在查看之前找到一种方法来插入某些功能并且可以达到所提供的配置,那么它就解决了我的问题。

1 个答案:

答案 0 :(得分: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装饰器。