无法 Pickle rest_framework.request.Request 对象

Can't Pickle rest_framework.request.Request object

我将请求对象(从 rest_framework)传递到 celery 任务队列时出错:

EncodeError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed

我已经检查过它是造成问题的请求对象。我该怎么做?

一个请求object 没有意义进行 pickle。它代表一个连接到您的网络服务器并等待响应的客户端 现在——您不能序列化它,将它写到一个任务queue(或一个文件或其他文件),并期望稍后能够从另一台机器响应它。

如果您需要保存请求的特定属性——例如 HTTP headers、URI 或 POST 参数——您将需要从请求中提取这些属性并将它们序列化与请求的其余部分分开。