私は特別なフォームの繰り返し作成を解決するために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の行(でスクリプトと対話する機会を得ます)私がする。 GetLoopForm.renderメソッドにset_trace()を挿入すると、動作しますが、get_loop_formに挿入しても機能しません。何故なの?
edit:Django開発サーバーを手動で再起動しました。その結果、上記のコードが動作しました。なぜこれが起こったのかまだ分かりません。
runserverを再起動しましたか?これはテンプレートタグなので、サーバーの開始時にキャッシュされる可能性があります。 – ustun
また、無関係ですが、pdbの代わりにipdbを使用することもできます。最初にipdbをインストールする必要があります。 – ustun
ああ、大丈夫です。その後、チャットされたtemplatetagでしたか?これを回答として投稿し、私はそれを受け入れます。 – marue