Ошибки пирамиды на страницах, которые не отображаются
Я получаю действительно странную ошибку. Каким-то образом, независимо от того, на какой странице я нахожусь, он загружает нужную мне страницу, затем пытается загрузить другую страницу (но, поскольку я не планирую переходить на эту страницу, переменные, которые он ищет, отсутствуют, поэтому он дает мне ошибки в консоли)
Вот мой маршрут:
config.add_route('editdata', '/{userurl}/{dataname}/edit')
config.add_route('viewdata', '/{userurl}/{dataname}')
config.add_route('profile', '/{userurl}')
если я перехожу на страницу editdata, страница загружается нормально, но на моем экране отладки я получаю ошибки, связанные со страницей профиля (я знаю, что нахожусь в этом разделе, потому что я помещаю операторы print, выводящие, в какой функции я нахожусь, и ошибки связанные с SQL с этой страницы, которые не связаны со страницей редактирования).
Я изменил порядок маршрутов и все еще получаю ошибку, я использую некоторые переменные с именем profile в некоторых функциях, поэтому я даже пытался изменить имя маршрута на profile1, но я все еще получаю ошибки. Когда я закомментирую маршрут профиля (в init и views), ошибка исчезнет, но, очевидно, область моего профиля недоступна.
Любые предложения о том, что я могу попытаться устранить эту проблему? Я не вижу никаких ссылок на мой профиль, кроме как в маршруте (нет страниц, перенаправляющих на профиль, но на каждой странице в 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 (выводит переменные и сообщает мне, где я), но затем по какой-то причине он также загружает страницу профиля. Я запутался в том, почему он это делает и откуда приходит этот запрос на загрузку.
1 ответ
Если вы посмотрите на верхнюю часть вставки, то увидите, что URL, который генерирует ошибку, '/favicon.ico'
который браузер запрашивает каждый раз, когда вы посещаете ваш сайт. Этот путь соответствует регулярному выражению для URL вашего профиля '/{userurl}'
,