【发布时间】:2026-01-26 12:25:01
【问题描述】:
我试图通过创建一个装饰器来处理总是重复的简单逻辑来消除冗余代码。基本上我创建的每个视图都有以下逻辑来检查用户是否在班级中。
@login_required
def view(request, class_id):
class_ = UserClasses.objects.get(user=request.user, class_id=class_id)
# if the user is in the class
if class_:
我想做以下事情:
查看:
@user_passes_test(in_class(request.user, class_id))
@login_required
def view(request, class_id):
装饰者:
from apps.classes.models import UserClasses
def in_class(request, class_id):
class_ = UserClasses.objects.get(user=request.user, class_id=class_id)
if class_:
return true
else:
return false
实现这一目标的最佳方法是什么?
【问题讨论】:
标签: python django decorator python-decorators