2

本当に奇妙なエラーが発生します。どういうわけか、どのページにいても、必要なページをロードしてから別のページをロードしようとします(しかし、そのページに移動する予定がないため、探している変数が存在しないため、コンソールのエラー)

これが私のルートです:

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'

あなたは見ることができます(上部近く)ビューデータビューを正常にレンダリングします(変数を出力し、それが私がどこにいるのかを教えてくれます)が、何らかの理由でプロファイルページもロードします. なぜこれを行うのか、それをロードする要求がどこから来ているのか、私は混乱しています。

4

1 に答える 1

4

ペーストの上部付近を見ると、エラーを生成している URL が'/favicon.ico'、サイトにアクセスするたびにブラウザーが要求する URL であることがわかります。そのパスは、プロファイル url の正規表現と一致'/{userurl}'します。

于 2012-07-19T15:24:52.580 に答える