Python ';WSGIRequest&x27;对象没有属性';用户';在谷歌应用程序引擎中

Python ';WSGIRequest&x27;对象没有属性';用户';在谷歌应用程序引擎中,python,django,google-app-engine,Python,Django,Google App Engine,我是django和Google应用程序引擎的新手,在使用数据存储时遇到了麻烦。每次我进行查询时,例如 db.GqlQuery("SELECT * FROM Listing ORDER BY date DESC LIMIT 10") 我收到错误消息: 'WSGIRequest' object has no attribute 'user' 此错误似乎是在django内核的context_processors.py中生成的。现在,我在互联网上找到的建议说要注释掉与用户相关的已安装应用程序和中间件

我是django和Google应用程序引擎的新手,在使用数据存储时遇到了麻烦。每次我进行查询时,例如

db.GqlQuery("SELECT * FROM Listing ORDER BY date DESC LIMIT 10")
我收到错误消息:

'WSGIRequest' object has no attribute 'user'
此错误似乎是在django内核的context_processors.py中生成的。现在,我在互联网上找到的建议说要注释掉与用户相关的已安装应用程序和中间件类,但这似乎没有帮助。我的代码如下所示:

MIDDLEWARE_CLASSES = (
#    'django.middleware.common.CommonMiddleware',
#    'django.contrib.sessions.middleware.SessionMiddleware',
#    'django.contrib.auth.middleware.AuthenticationMiddleware',
#    'django.middleware.doc.XViewMiddleware',
)

INSTALLED_APPS = (
#    'django.contrib.auth',
    'django.contrib.contenttypes',
#    'django.contrib.sessions',
    'django.contrib.sites',
)
我的列表对象定义如下(它以前有一个author属性,但现在被注释掉了,并且该对象被重新定义为一个新名称):


有人知道是什么导致了这个错误,以及如何修复它吗?这可能是因为必须以某种方式重置设置吗?

更新

sdolan建议的解决方案似乎是在应用程序的settings.py中添加以下内容:

模板\u上下文\u处理器=( “django.core.context_processors.debug”, “django.core.context_processors.i18n”)

这有效地删除了第三个默认处理器django.core.context\u processors.auth(它不应该在那里,因为对于AppEngine,我们不需要django的auth组件)

谢谢你,斯多兰,谢谢你的解决方案!希望其他人也能使用它。:)

@Nick,我认为值得将这篇关于上下文处理器的黄金文章放在教程中()

(问题的原始后续行动)

有同样的问题,正在寻找解决方案。。。。当settings.py包含

调试=真

但当我切换到学习模式时,这个错误突然出现(并扼杀了我继续学习的动力)

调试=错误

@Nick Johnson,这是堆栈跟踪:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3211, in _HandleRequest
    self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3154, in _Dispatch
    base_env_dict=env_dict)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 527, in Dispatch
    base_env_dict=base_env_dict)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2404, in Dispatch
    self._module_dict)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2314, in ExecuteCGI
    reset_modules = exec_script(handler_path, cgi_path, hook)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2212, in ExecuteOrImportScript
    script_module.main()
  File "C:\Dev\appengine\djangotest\main.py", line 37, in main
    util.run_wsgi_app(application)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\util.py", line 97, in run_wsgi_app
    run_bare_wsgi_app(add_wsgi_middleware(application))
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\util.py", line 115, in run_bare_wsgi_app
    result = application(env, _start_response)
  File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\core\handlers\wsgi.py", line 189, in __call__
    response = self.get_response(request)
  File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\core\handlers\base.py", line 103, in get_response
    return callback(request, **param_dict)
  File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\views\defaults.py", line 79, in page_not_found
    return http.HttpResponseNotFound(t.render(RequestContext(request, {'request_path': request.path})))
  File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\template\context.py", line 100, in __init__
    self.update(processor(request))
  File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\core\context_processors.py", line 18, in auth
    'user': request.user,
AttributeError: 'WSGIRequest' object has no attribute 'user'

请包括异常stacktrace。如果您删除了所有auth应用程序,您还需要注释掉在
context\u PROCESSORS
中设置的auth上下文处理器。谢谢--我从未用堆栈跟踪回答过,因为在任何人添加注释之前,我放弃了GAE(并重拨了所有相关代码)。
Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3211, in _HandleRequest
    self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3154, in _Dispatch
    base_env_dict=env_dict)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 527, in Dispatch
    base_env_dict=base_env_dict)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2404, in Dispatch
    self._module_dict)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2314, in ExecuteCGI
    reset_modules = exec_script(handler_path, cgi_path, hook)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2212, in ExecuteOrImportScript
    script_module.main()
  File "C:\Dev\appengine\djangotest\main.py", line 37, in main
    util.run_wsgi_app(application)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\util.py", line 97, in run_wsgi_app
    run_bare_wsgi_app(add_wsgi_middleware(application))
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\util.py", line 115, in run_bare_wsgi_app
    result = application(env, _start_response)
  File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\core\handlers\wsgi.py", line 189, in __call__
    response = self.get_response(request)
  File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\core\handlers\base.py", line 103, in get_response
    return callback(request, **param_dict)
  File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\views\defaults.py", line 79, in page_not_found
    return http.HttpResponseNotFound(t.render(RequestContext(request, {'request_path': request.path})))
  File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\template\context.py", line 100, in __init__
    self.update(processor(request))
  File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\core\context_processors.py", line 18, in auth
    'user': request.user,
AttributeError: 'WSGIRequest' object has no attribute 'user'