我得到一个非常奇怪的错误。无论如何,无论我在哪个页面上,它都会加载我想要的页面,然后尝试加载另一个页面(但是因为我不打算去那个页面,它所寻找的变量不存在所以它给了我控制台中的错误)
这是我的路线:
config.add_route('editdata', '/{userurl}/{dataname}/edit')
config.add_route('viewdata', '/{userurl}/{dataname}')
config.add_route('profile', '/{userurl}')
如果我进入editdata页面,页面加载正常,但在我的调试屏幕中我得到与配置文件页面相关的错误(我知道我在那个部分,因为我把print语句输出我正在使用的函数和错误与该页面中与编辑页面无关的sql相关。
我已经改变了路由的顺序并且仍然得到错误,我在某些函数中使用了一些名为profile的变量,所以我甚至尝试将路由名称更改为profile1但我仍然得到错误。当我注释掉配置文件路径(在init和视图中)时,错误消失了,但显然我的配置文件区域无法访问。
有关我可以尝试解决此问题的任何建议吗?除了在路线中没有看到任何对我的个人资料视图的引用(没有页面重定向到个人资料但是在jinja2的每个页面上我都有一个指向该个人资料的链接但我也有链接到其他页面而且没有得到错误)。
如果它有助于追溯(我所做的只是转到viewdata页面,并没有进入个人资料页面)。:
C:\Users\lostsoul\Desktop>C:\Users\lostsoul\GoogleDrive\pyramidtut\Scripts\pserve.
exe C:\Users\lostsoul\GoogleDrive\pyramidtut\tutorial\development.ini --reload
Starting subprocess with file monitor
Starting server in PID 4016.
serving on http://0.0.0.0:6543
we are viewing the data
****
Variables are:
monkey
dog
*****
we are in profile section
2012-07-19 00:07:01,388 ERROR [pyramid_debugtoolbar][Dummy-2] Exception at http:
//localhost:6543/favicon.ico
traceback url: http://localhost:6543/_debug_toolbar/exception?token=c0660cf901de
bc8c3af7&tb=67564912
Traceback (most recent call last):
File "C:\Users\lostsoul\GoogleDrive\pyramidtut\lib\site-packages\pyramid_debugt
oolbar-1.0.2-py2.7.egg\pyramid_debugtoolbar\toolbar.py", line 122, in toolbar_tw
een
response = _handler(request)
File "C:\Users\lostsoul\GoogleDrive\pyramidtut\lib\site-packages\pyramid_debugt
oolbar-1.0.2-py2.7.egg\pyramid_debugtoolbar\panels\performance.py", line 69, in
noresource_timer_handler
result = handler(request)
File "C:\Users\lostsoul\GoogleDrive\pyramidtut\lib\site-packages\pyramid-1.3.2-
py2.7.egg\pyramid\tweens.py", line 20, in excview_tween
response = handler(request)
File "C:\Users\lostsoul\GoogleDrive\pyramidtut\lib\site-packages\pyramid_tm-0.5
-py2.7.egg\pyramid_tm\__init__.py", line 100, in tm_tween
response = handler(request)
File "C:\Users\lostsoul\GoogleDrive\pyramidtut\lib\site-packages\pyramid-1.3.2-
py2.7.egg\pyramid\router.py", line 164, in handle_request
response = view_callable(context, request)
File "C:\Users\lostsoul\GoogleDrive\pyramidtut\lib\site-packages\pyramid-1.3.2-
py2.7.egg\pyramid\config\views.py", line 333, in rendered_view
result = view(context, request)
File "C:\Users\lostsoul\GoogleDrive\pyramidtut\lib\site-packages\pyramid-1.3.2-
py2.7.egg\pyramid\config\views.py", line 471, in _requestonly_view
response = view(request)
File "c:\users\lostsoul\googledrive\pyramidtut\tutorial\tutorial\views.py", lin
e 109, in profile
profile_info = DBSession.query(data).filter(data.owner==profileda
ta.id).all()
AttributeError: 'NoneType' object has no attribute 'id'
你可以看到(靠近顶部)它成功渲染了viewdata视图(输出变量并告诉我这就是我的位置)但是由于某种原因它也加载了配置文件页面。我很困惑为什么会这样做以及加载它的请求来自哪里。
答案 0 :(得分:4)
如果您查看粘贴顶部附近的信息,则可以看到生成错误的网址为'/favicon.ico'
,浏览器会在您访问您的网站时请求该网址。该路径匹配您的个人资料网址'/{userurl}'
的正则表达式。