Django 2.1.7 如何在包视图上使用装饰器
Django 2.1.7 How to use a decorator on a package view
我想知道如何在函数 view.py 上使用装饰器,它不能直接在我的应用程序中找到,而是在包中(venv / lib / ...)
有关更多详细信息,我将构建一个使用 django-allauth 的应用程序。
我创建了一个装饰器,要求用户在访问特定页面之前确认他们的密码。
一切顺利,但我想在可以管理电子邮件的 aullauth 功能上使用此构造函数。
我不知道如何进行...
enter image description here
对不起我的英语。
如果是函数视图可以这样做
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 所以我在这里尝试了 Class 基本视图的解决方案,但它没有用。
由于我的知识有限,我可能没有针对正确的 class ...
不过,我通过定位 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"),
...
]
非常感谢,非常感谢您的帮助和时间。
很可能您的解决方案在未来对我有帮助。 :)
我想知道如何在函数 view.py 上使用装饰器,它不能直接在我的应用程序中找到,而是在包中(venv / lib / ...)
有关更多详细信息,我将构建一个使用 django-allauth 的应用程序。 我创建了一个装饰器,要求用户在访问特定页面之前确认他们的密码。
一切顺利,但我想在可以管理电子邮件的 aullauth 功能上使用此构造函数。
我不知道如何进行...
enter image description here
对不起我的英语。
如果是函数视图可以这样做
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 所以我在这里尝试了 Class 基本视图的解决方案,但它没有用。 由于我的知识有限,我可能没有针对正确的 class ...
不过,我通过定位 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"),
...
]
非常感谢,非常感谢您的帮助和时间。
很可能您的解决方案在未来对我有帮助。 :)