使えるようにはなった。けど、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>

修正点:

  1. request.POST.parameter の代わりに request.POST.parameter.name を使用しました。
  2. parameter.name in request.POST.parameter を使用して、辞書内にキー parameter.name が存在するかどうかを確認しています。

この修正により、正しくフォームの値が保持されるはずです。お試しください。

未分類

Posted by ぼっち