4

プロジェクトで初日から@login_requiredデコレータを使用していて、正常に動作していますが、何らかの理由で、特定のURLで「AttributeError:'unicode'オブジェクトに属性'user'」がありません(およびそれらは過去に働いた)。

例:私はWebサイトであり、ログに記録されています。次にリンクをクリックすると、このエラーが発生します。これは通常、SessionMiddlewareがインストールされていないという事実に関連しています。しかし、私の場合、私がサイトにログオンしていて、私がいるページにも@login_requiredがあったので、1つあります。

何か案が?

URLは:として定義され(r'^accept/(?P<token>[a-zA-Z0-9_-]+)?$', 'accept'), 、メソッドは:として定義されます。@login_required def accept(request,token): ...

トレースバック:

Traceback (most recent call last):
  File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/core/servers/basehttp.py", line 674, in __call__
    return self.application(environ, start_response)
  File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/core/handlers/wsgi.py", line 241, in __call__
    response = self.get_response(request)
  File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/core/handlers/base.py", line 141, in get_response
    return self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/core/handlers/base.py", line 165, in handle_uncaught_exception
    return debug.technical_500_response(request, *exc_info)
  File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/core/handlers/base.py", line 100, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/contrib/auth/decorators.py", line 25, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/Users/macbook/dev/pycharm-projects/proj/match/views.py", line 33, in accept
    return __process(token,callback)
  File "/Users/macbook/virtualenv/proj/lib/python2.6/site-packages/django/contrib/auth/decorators.py", line 24, in _wrapped_view
    if test_func(request.user):
AttributeError: 'unicode' object has no attribute 'user'`
4

2 に答える 2

10

デコレータは、パラメータとしてリクエストを持たないプライベートメソッド上にありました。私はそのデコレータを削除しました(リファクタリングとテストの欠如のためにそこに残されました[悪い私])。

問題が解決しました。

于 2011-02-04T16:27:26.823 に答える
0

これは、リクエストパラメータを指定せずに別のメソッドから装飾されたメソッドを呼び出す場合にも発生する可能性があります。

于 2015-11-20T14:37:56.993 に答える