Djangoのビルドインログインビューのカスタムテンプレートを作成しようとしています。それは(registration/login.html
)のように見えた瞬間に:Djangoのログインテンプレートにフィールドタイプを取得
<form method="post">
{% csrf_token %}
{% for field in form %}
{% include 'registration/form_field.html' %}
{% endfor %}
<input class="btn btn-primary btn-block" type="submit" value="{% trans "Log in" %}">
</form>
そしてregistration/form_field.html
ファイルは次のとおりです。
<div class="form-group {% if field.errors %}has-error{% endif %}">
<input class="form-control" name="{{ field.name }}" placeholder="{{ field.label }}" {% if field.data %}value="{{ field.data }}"{% endif %} />
{% if field.errors %}
<span class='text-danger'>{{ field.errors|join:'<br>' }}</span>
{% endif %}
</div>
すべてが期待通りに、唯一の問題は、パスワードがクリアテキストで表示されていることである動作します。
これを解決するにはpassword
フィールド(およびusername
フィールドの場合はtype="text"
)に設定する必要があります。
field
変数(つまり、{{ field.type }}
など)を使用して実装できますか?
ご協力いただきありがとうございます。私はそれをforループの内部で動作させるために少し修正する必要があります: '{{field.field.widget.input_type}}'。 –