2012-02-10 8 views
1

私は特別なフォームの繰り返し作成を解決するためにtemplatetagを書いています。そのロジックにいくつかの問題があったので、pdb.set_trace()を挿入してその根底に到達しました。しかし、不思議なことに、このset_trace()はtemplatetagを呼び出すと実行されないようです。タグは次のようになります。pdb.set_trace()がtemplatetag定義で動作しないのはなぜですか?

@register.tag('get_loop_form') 
def get_loop_form(parser,token): 

    import pdb;pdb.set_trace() 

    #put some logic here 

    return GetLoopForm() 

と私は単純に、このようなテンプレートでそれを呼び出す:

{% get_loop_form %} 

は、通常、私はset_traceの行(でスクリプトと対話する機会を得ます)私がする。 GetLoopF​​orm.renderメソッドにset_trace()を挿入すると、動作しますが、get_loop_formに挿入しても機能しません。何故なの?

edit:Django開発サーバーを手動で再起動しました。その結果、上記のコードが動作しました。なぜこれが起こったのかまだ分かりません。

+1

runserverを再起動しましたか?これはテンプレートタグなので、サーバーの開始時にキャッシュされる可能性があります。 – ustun

+0

また、無関係ですが、pdbの代わりにipdbを使用することもできます。最初にipdbをインストールする必要があります。 – ustun

+1

ああ、大丈夫です。その後、チャットされたtemplatetagでしたか?これを回答として投稿し、私はそれを受け入れます。 – marue

答えて

0

テンプレートタグなので、サーバーの開始時にキャッシュされる可能性があります。問題を解決するはずのサーバーを再起動してみてください。

関連する問題