使えるようにはなった。けど、inputに値は保持されない。 <div class=”mb-3″> <label for=”{{ parameter.label }}” class=”form-label”>{{ parameter.label }}</label> <input type=”text” class=”form-control” id=”{{ parameter.name }}” name=”{{ parameter.name }}” value=”{% if request.POST.parameter and parameter in request.POST.parameter %}{{ request.POST.parameter|get_item:parameter }}{% endif %}”> </div>
inputフィールドに値を正しく保持するためには、POSTされたデータが正しく処理され、フォームに渡される必要があります。また、request.POST.parameter は辞書型のデータであり、parameter in request.POST.parameter のように直接 in 演算子を使用することができません。
以下のように修正してみてください:
html
<div class="mb-3"> <label for="{{ parameter.label }}" class="form-label">{{ parameter.label }}</label> <input type="text" class="form-control" id="{{ parameter.name }}" name="{{ parameter.name }}" value="{% if request.POST.parameter and parameter.name in request.POST.parameter %}{{ request.POST.parameter|get_item:parameter.name }}{% endif %}"> </div>
修正点:
request.POST.parameterの代わりにrequest.POST.parameter.nameを使用しました。parameter.name in request.POST.parameterを使用して、辞書内にキーparameter.nameが存在するかどうかを確認しています。
この修正により、正しくフォームの値が保持されるはずです。お試しください。

ディスカッション
コメント一覧
まだ、コメントがありません