前回はInlineFormSetFactoryにてサブフォーム側にchoicesをつかって、静的に入力補助できるようにした のですが、さらに動的に入力補助できないものかと思い、datalistを使えないかとやってみたところ動いたので、備忘録として挙げてみることにしました。 なお、html5のdatalist自体の説明は割愛します。 まず、サブフォーム側です。以下のようにしました。 class art_imageForm(InlineFormSetFactory): model = art_image fields = ['art_image_title', 'original_img', ] factory_kwargs = { 'widgets' : {\ 'art_image_title':\ forms.TextInput( attrs={'list': 'art_image_titles', 'placeholder': 'enter image title'}, ), }, } ここでは、datalistをid="art_image_titles"のものから参照するということと、placeholderをここで指定しています。つづいて、テンプレート側です。フィールドを表示する部分だけですが、以下のようにしました。 {% for form in formset %} {% for field in form %} <tr> <th class="bg-light"> {% if field.field.widget.is_hidden %} {% else %} ...