2011-02-04 2 views
4

오늘부터 프로젝트에서 @login_required 데코레이터를 사용하고 있는데 문제가 없지만 어떤 이유로 든 " AttributeError : 'unicode'객체에 'user'속성이 없습니다. urls (그리고 과거에 일한 사람들)."AttributeError : 'unicode'객체에 특정 URL에 'user'속성이 없다는 이유는 무엇입니까?

예 : 나는 웹 사이트에 로그인하고 링크를 클릭하면 일반적으로 SessionMiddleware가 설치되어 있지 않다는 사실에 연결된이 오류가 발생합니다. 하지만 내 경우에는 사이트에 로그온 한 이후로 한 페이지가 있고 내가있는 페이지에도 @login_required가 있습니다.

아이디어가 있으십니까?

URL입니다

같이 definied된다 (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'` 
+1

AttributeError의 추적을 게시 할 수 있습니까? 어떤 코드는 요청이 실제로 unicode 객체 일 때'request.user'를 호출하는 것 같습니다. –

답변

10

데코레이터가 매개 변수로 요청이없는 개인 방법에 있었다. 나는 그 장식자를 제거했다. (리팩터링과 시험의 부재로 인해서 거기에 남겨졌다.

문제가 해결되었습니다.

0

요청 매개 변수를 제공하지 않고 다른 메서드에서 데코 레이팅 된 메서드를 호출하는 경우에도 발생할 수 있습니다.