如果符合某些特征,就使用某个装饰器,有选择的使用装饰器
# 这是python的 登录需求装饰器
from django.contrib.auth.decorators import login_required
# 这是之前同事实现的 登录需求装饰器
def wx_login_required(view_func):
def wrapper(request):
url_app_type = request.GET.get("app_type")
return view_func(request)
return wrapper
# 这是我新写的 登录需求装饰器
# 逻辑: 如果符合某些特征,就使用wx_login_required装饰器,否则使用login_required装饰器
def wx_or_normal_login_required(view_func):
def wrapper(request):
url_app_type = request.GET.get("app_type")
if url_app_type:
return wx_login_required(view_func)(request)
return login_required(view_func)(request)
return wrapper
使用
@wx_or_normal_login_required
def get_order_service_status(request):
pass