Пользовательский декоратор, который вызывается перед каждым просмотром с использованием промежуточного программного обеспечения. - PullRequest
0 голосов
/ 10 октября 2019

У меня есть собственный декоратор в файле, и мне нужно, чтобы каждый 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...