カスタムウィジェットとそれを使用するフォームを作成しました。 以前、私はちょうど私がそれをデバッグして、フォームを表示する単純なテンプレートを持っていた:djangoはフォームのレンダリング時にウィジェットをエスケープします
<form>
{{ run_form.as_p }}
</form>
は今、私はdivの中で、各フォームフィールドを囲みたいので、私は
{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }}: {{ field }}
</div>
{% endfor %}
にテンプレートを変更しました
しかし、フィールドがレンダリングされると、その文字はすべてHTMLでエスケープされているように見えるので、ソースコードを見ると、<input type="text" id="id_scriptscrap"/>
のようになります。 <input type="text" id="id_scriptscrap"/>
のようになります。
紛失しているものがありますか?最初のテンプレートはエスケープしないで出力し、2番目のテンプレートはエスケープするのはなぜですか?おそらく私はカスタムウィジェットクラスを作成するときに何か間違っていましたか?
感謝の一例
password = forms.PasswordInput
のために、それはただ、将来の読者:)のために明確にすることだった - ウィジェットのは、(レンダリング)メソッドは、mark_safe()でマークされていない文字列を返し、テンプレートがそれをエスケープしました。 – olamundo