0

私は非常に典型的な view/login_required デコレーターの実装をしていますが、QA チームは 1 日に 2 回、次のエラーに遭遇することがあると報告されています。

ERROR: AttributeError at /plan/reviewplan/1702/ 'WSGIRequest' object has no 
attribute 'user' Request Method: GET Request URL: 
http://<ip>/plan/reviewplan/1702/ Django Version: 1.5.1

Traceback: File "/usr/lib/pymodules/python2.6/django/core/handlers/base.py" in get_response 187. 
response = middleware_method(request, response) 
File "/usr/local/lib/python2.6/dist-packages/debug_toolbar/panels/template.py" in process_response 118. pformat(k(self.request))) for k in get_standard_processors() 
File "/opt/ion/iondb/rundb/context_processors.py" in base_context_processor 25. 
if request.user: Exception Type: AttributeError at /plan/reviewplan/1702/ 
Exception Value: 'WSGIRequest' object has no attribute 'user' 

私がチェックしたところ、ビューには実際にlogin_requiredデコレータがあります。login_required で装飾された他のビューでも報告されています。

ビューのリターンは次のとおりです。

return render_to_response("template.html", context_instance=ctx, mimetype="text/html")

参考までに: ctx インスタンスはセッションに保存され、多くの場合、ビュー呼び出し間で更新されます。私はこのデザインを継承しましたが、それについてはどうすることもできません。これを処理する関数は次のとおりです。

def _create_context_from_session(request, next_step_name):
    ctxd = request.session['saved_plan']
    ctxd['helper'] = request.session['plan_step_helper']
    ctxd['step'] = None
    if next_step_name in ctxd['helper'].steps:
        ctxd['step'] = ctxd['helper'].steps[next_step_name]
    context = RequestContext(request, ctxd)
    return context
4

1 に答える 1