2

我遇到了一个非常奇怪的错误。不知何故,无论我在哪个页面上,它都会加载我想要的页面然后尝试加载另一个页面(但是由于我不打算转到该页面,因此它寻找的变量不存在,所以它给了我控制台中的错误)

这是我的路线:

config.add_route('editdata', '/{userurl}/{dataname}/edit')
config.add_route('viewdata', '/{userurl}/{dataname}')
config.add_route('profile', '/{userurl}')

如果我转到editdata页面,页面加载正常,但在我的调试屏幕中,我收到与配置文件页面相关的错误(我知道我在那个部分,因为我放置了打印语句输出我所在的功能并且错误是与该页面中的 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 视图(输出变量并告诉我我在哪里)但是由于某种原因它也加载了配置文件页面。我对它为什么这样做以及加载它的请求来自哪里感到困惑。

4

1 回答 1

4

如果您查看粘贴顶部附近,您可以看到生成错误的 URL 是'/favicon.ico'浏览器在您访问您的站点时请求的 URL。该路径与您的个人资料 url 的正则表达式匹配'/{userurl}'

于 2012-07-19T15:24:52.580 回答