Как использовать промежуточное ПО для вызова c в веб-приложении Django? - PullRequest
0 голосов
/ 17 марта 2020

Я хочу использовать промежуточное ПО в моем django веб-приложении. Но проблема в том, что я хочу использовать промежуточное ПО только после успешного входа пользователя. Я объявляю свое пользовательское промежуточное ПО в файле setting.py, но оно выдает ошибку, потому что пользовательское промежуточное ПО вызывается при ненужном повторном вызове. Как мне вызвать промежуточное ПО, когда некоторые задают c спокойный вызов.

Ответы [ 2 ]

1 голос
/ 17 марта 2020

Вы можете проверить, активен ли пользователь в django. Промежуточное ПО применяется следующим образом


class StackoverflowMiddleware(object):

    def __init__(self,get_response):
        self.get_response=get_response

    def __call__(self,request):
        try:
            response=self.get_response(request)
            if request.user.is_authenticated:
                print('Run when user Are login')
            else:
                print('Run when user Are not login')
        except Exception as e:
            self.process_exception(request,e)
        return response

    def process_exception(self,request,exception):
        print(exception.__class__.__name__)
        print(exception)
        return None

Вы также используете MiddleWareMixin проверить аутентификацию пользователя

0 голосов
/ 24 марта 2020

Попробуйте проверить путь к URL.

class YourMiddleware:
def __init__(self, get_response):
    self.get_response = get_response

def __call__(self, request):
    response = self.get_response(request)
    if hasattr(request, 'path') and 'loggin-url' in request.path:
        # Do smthing

    return response
...