У меня есть собственный декоратор в файле, и мне нужно, чтобы каждый API вызывал этот декоратор. Я не хочу писать @decorator_name
перед каждым просмотром. Я думаю, что это можно сделать с помощью промежуточного программного обеспечения, но я не уверен, как это сделать.
Я пробовал промежуточное программное обеспечение, как это
class DefaultAccountMiddleware(MiddlewareMixin):
def process_view(self, request, view_func, view_args, view_kwargs):
return update_latest_account(view_func)(self, request, *view_args, **view_kwargs)
Это декоратор:
def update_latest_account(f):
@wraps(f)
def decorator(self, request, *args, **kwargs):
user_id = request.user.id
print('hi')
user = User.objects.filter(id = user_id).first()
if user is not None:
account_id = request.META.get("HTTP_ACCOUNT_ID", None)
user.latest_account_id = account_id
user.save()
return f(self, request, *args, **kwargs)
return decorator