我有一个简单的视图函数和一个装饰器,我想在装饰器中使用传递给视图的参数。我已经四处搜索,但没有找到任何例子,我仍然不确定这是否可能,如果是这样 - 怎么做?
附加装饰器的视图:
@user_is_project_maintainer
def edit(request, project_id_key):
装饰器本身:
def user_is_project_maintainer():
def decorator(view_func):
@wraps(view_func, assigned=available_attrs(view_func))
def _wrapped_view(request, *args, **kwargs):
if (project_id_key.isdigit()) :
project = get_object_or_404(Project, pk=project_id_key)
else :
project = get_object_or_404(Project, key=project_id_key)
if (project.maintainer_id != request.user.id) :
return HttpResponseRedirect(reverse('core.views.index', args=(project.key,)))
else :
view_func(request, *args, **kwargs)
return _wrapped_view
return decorator
我复制了一个默认的 django 视图装饰器并根据我的需要对其进行了修改,我确定我做错了,但事实并非如此。我不知道的主要事情 - 如何让我的手在project_id_key
装饰器内的 var 上?