次のように、urls.pyファイルでlogin_requiredデコレータを使用する一般的なビューがあります。
(r'^my-url/$', login_required(ListView.as_view())),
ここで、このURLにvary_on_headersデコレータを使用したいのですが、機能させることができません。
私はもう試した:
(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'
何が起こっている可能性があり、この問題を解決する方法についてのアイデアはありますか?