从中间件传递额外的参数以进行查看

时间:2019-04-13 18:28:58

标签: django python-3.x django-middleware

我想在我的POST(JSON)请求中添加另一个字段。键值对必须为“请求ID”。我已经得出结论,最好的方法是生成一个随机请求ID,然后使用中间件将其注入到请求对象中。我为此编写了一个定制的中间件。尝试击中端点时出现错误。

我尝试通过Internet搜索,但没有找到解决我错误的方法。

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 :(得分:0)

好的。我实现了自己想做的。我的自定义中间件代码是:

ifelse()