에서 일반적인 전망 vary_on_headers와 login_required 이 URL에 대한 vary_on_headers 꾸미기는 작동하지만 작동하지 않습니다.사용은이 같은, 내가 urls.py 파일에 login_required 장식을 사용하여 일반적인 전망을 가지고있어 장고
나는 시도했다 :
(r'^my-url/$', vary_on_headers(login_required(ListView.as_view()),'HTTP_X_REQUESTED_WITH'))
하지만 내 테스트하는 동안 다음 오류가 발생했습니다 : 내가하려고하면
response = self.client.get('/my-url/', HTTP_X_REQUESTED_WITH='XMLHttpRequest')
File "/lib/python2.6/site-packages/django/test/client.py", line 439, in get
response = super(Client, self).get(path, data=data, **extra)
File "/lib/python2.6/site-packages/django/test/client.py", line 241, in get
return self.request(**r)
File "/lib/python2.6/site-packages/django/core/handlers/base.py", line 178, in get_response
response = middleware_method(request, response)
File "/lib/python2.6/site-packages/django/middleware/common.py", line 94, in process_response
if response.status_code == 404:
AttributeError: 'function' object has no attribute 'status_code'
:
(r'^my-url/$', login_required(vary_on_headers(MyProductsView.as_view(),'HTTP_X_REQUESTED_WITH'))),
하지만 나는 다음과 같은 오류가 발생합니다 지금 :
response = self.client.get('/my-url/', HTTP_X_REQUESTED_WITH='XMLHttpRequest')
File "/lib/python2.6/site-packages/django/test/client.py", line 439, in get
response = super(Client, self).get(path, data=data, **extra)
File "/lib/python2.6/site-packages/django/test/client.py", line 241, in get
return self.request(**r)
File "/lib/python2.6/site-packages/django/core/handlers/base.py", line 178, in get_response
response = middleware_method(request, response)
File "/lib/python2.6/site-packages/django/contrib/sessions/middleware.py", line 26, in process_response
patch_vary_headers(response, ('Cookie',))
File "/lib/python2.6/site-packages/django/utils/cache.py", line 133, in patch_vary_headers
if response.has_header('Vary'):
AttributeError: 'function' object has no attribute 'has_header'
어떤 일이 벌어지고 있는지 그리고이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
캐시 미들웨어가 이미 'HTTP_'를 추가했기 때문에 여기에 추가 할 올바른 헤더가 X_REQUESTED_WITH 인 것 같습니다. – duduklein
확인, 올바른 답변으로 답변을 업데이트했습니다. – Alasdair