Передать дополнительные аргументы из промежуточного программного обеспечения для просмотра - PullRequest
1 голос
/ 13 апреля 2019

Я хочу добавить другое поле в моем запросе POST (JSON).Пара ключ-значение должна быть «идентификатором запроса».Я пришел к выводу, что лучшим способом было бы генерировать случайный идентификатор запроса и вставлять его в объект запроса с помощью промежуточного программного обеспечения.Я написал специальное промежуточное программное обеспечение для этого.Я получаю сообщение об ошибке, когда пытаюсь достичь конечной точки.

Я попытался выполнить поиск в Интернете, но не нашел решения своей ошибки.

class SimpleMiddleware:
def __init__(self, get_response):
    self.get_response = get_response
    # One-time configuration and initialization.

def __call__(self, request):
    # Code to be executed for each request before
    # the view (and later middleware) are called.
    req = json.loads(request.body)
    req_id = random.randint(0,1000000)
    req["req_id"]=req_id

    response = self.get_response(req)

    # Code to be executed for each request/response after
    # the view is called.

    return response

Я получаю ошибку: У объекта 'dict' нет атрибута 'is_ajax' .Не могли бы вы помочь мне исправить это, и если есть более простой и лучший способ реализовать это, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 14 апреля 2019

Хорошо. Я достиг того, что пытался сделать. Мой код для пользовательского промежуточного программного обеспечения:

class SimpleMiddleware:
def __init__(self, get_response):
    self.get_response = get_response
    # One-time configuration and initialization.

def __call__(self, request):
    # Code to be executed for each request before
    # the view (and later middleware) are called.

    response = self.get_response(request)

    # Code to be executed for each request/response after
    # the view is called.

    return response

def process_view(self, request, view_func, *view_args, **view_kwargs):
    request.req_id = random.randint(0,1000000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...