我设法通过在自定义中间件类中使用 patch_vary_headers() 功能找到解决此问题的方法。我已经有一个平台检测中间件,它将移动/桌面设置添加到请求对象。所以我只是在中间件中添加了一个 process_response 函数并在那里修补它。到目前为止,它似乎工作正常。
class PlatformDetectionMiddleWare (object):
def process_request(self, request):
user_agent = request.META.get("HTTP_USER_AGENT")
http_accept = request.META.get("HTTP_ACCEPT")
agent = mdetect.UAgentInfo(userAgent=user_agent, httpAccept=http_accept)
request.is_tablet = agent.detectTierTablet()
request.is_mobile = agent.detectTierIphone()
def process_response(self, request, response):
patch_vary_headers(response, ['User-Agent'])
return response