我有一个情况,需要将已经登录的用户从登录页面重定向到另一个页面。我看到有人提到,这可以通过装饰工来完成,这是有意义的,但我对使用它们还是相当陌生的。但是,我使用的是django登录名和第三方视图(来自django注册)。我不想在中更改任何代码django.contrib.auth公司或者django注册。如何将decorator应用于不需要修改的视图以获得所需的行为。在
提前谢谢!在
更新:我发现我错误地将登录功能与注册模块相关联。django注册与这个问题无关。但是,我仍然需要能够覆盖默认的login()行为。有什么想法吗?在
Tags:
如果你有decorator函数,并且你知道你想要装饰django注册中的哪个视图,你可以这样做
其中
registration
是django注册中的模块,它包含要修饰的视图函数,view_func
是要修饰的视图函数,decorator_func
是装饰器。在还有三种方法可以做到这一点,但您需要使用自己的urlconf来完成这些操作:
直接在urlconf中将decorator添加到视图中:
不过,您需要将视图和decorator导入urlconf,这就是我不喜欢这个的原因。我宁愿在我的网址.py尽可能的。
将视图导入
^{pr2}$<app>/views.py
,并在其中添加装饰器:非常像Vinay的方法,但更显式,因为需要一个urlconf。
在新视图中换行视图:
当您需要更改通用视图时,最后一个非常方便。不管怎样,这就是我经常做的。
无论何时使用urlconf,模式的顺序都很重要,所以您可能需要重新考虑哪个模式首先被调用。在
相关问题 更多 >
编程相关推荐