为什么我在某些指定url上得到"AttributeError:'unicode'对象没有属性'user'"?

Jul*_*ier 4 python django login-required

我从第一天起就在我的项目中使用@login_required装饰器并且它工作正常,但由于某种原因,我开始在某些特定网址上获得"AttributeError:'unicode'对象没有属性'user'"(和那些曾经工作过的人).

示例:我是网站,已记录,然后我点击链接,我收到此错误,通常与没有安装SessionMiddleware的事实相关联.但在我的情况下,有一个,因为我登录该网站,我所在的页面也有一个@login_required.

任何的想法?

该网址定义为:(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'`
Run Code Online (Sandbox Code Playgroud)

Jul*_*ier 10

装饰器在一个没有请求作为参数的私有方法上.我删除了那个装饰器(因为重构和缺乏测试[坏我]而离开那里).

问题解决了.