[英]Django 2.1.7 How to use a decorator on a package view
我想知道如何在函数view.py上使用装饰器,该装饰器不能直接在我的应用程序中找到,而是在包装中(venv / lib / ...)
有关更多详细信息,我将构建一个使用django-allauth的应用程序。 我创建了一个装饰器,要求用户在访问某些页面之前确认密码。
一切顺利,但我想在可以管理电子邮件的aullauth函数上使用此构造函数。
我不知道该如何进行...
对不起我的英语不好。
如果是功能视图,则可以执行此操作
import package_view...
@decorator
def custom_view(request, *args, **kwargs):
return package_view(request, *args, **kwargs)
如果它是CBV,则可以从中继承它,并将装饰器添加到dispatch方法中:
class CustomView(PackageView):
@decorator
def dispatch(request, *args, **kwargs):
return super().dispatch(request, *args, **kwargs)
@Pedro,您好:在这里,我尝试了基于类的基本视图的解决方案,但是没有成功。 由于我的知识有限,我可能没有针对正确的上课...
不过,我通过定位url并在目标url上使用装饰器解决了问题
它可以帮助其他人的样子是这样的:
...
from allauth.account import views as allauth_views
from .decorators import confirm_password
urlpatterns = [
re_path(r'^accounts/', include('allauth.urls')),
re_path(r"^email/$", confirm_password(allauth_views.email), name="account_email"),
...
]
非常感谢您,感谢您的帮助和时间。
您的解决方案很可能会在将来对我有所帮助。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.