前提・実現したいこと
Django,python3でWEBシステムを開発しています。
現在作成しているFormViewのテンプレートでは、Formクラスで作成したfieldsが全て表示されてしまいます。
自分の指定したfieldを使用するようにしたいのですが、どのような方法が使えますでしょうか?
ご教授いただけないでしょうか?
該当のソースコード
forms.py
python
1class SampleForm(forms.ModelForm): 2 class Meta: 3 model = sampleDb 4 fields = ('name', 'e_mail', 5 'phone_number', 'memo', ) 6 7 def __init__(self, *args, **kwargs): 8 super().__init__(*args, **kwargs) 9 for field in self.fields.values():
views.py
python
1class SampleFormView(generic.FormView): 2 template_name = 'form.html' 3 form_class = SampleForm 4 5 def form_valid(self, form): 6 data = form.send_email() 7 return render(self.request, 'simulation.html', {'data': data})
form.html
html
1<div> 2 {{ form.non_field_errors }} 3 {% for field in form %} 4 <label for="{{ field.id_for_label }}" class="control-label col-md-4 col-sm-4 "> 5 {{ field.label_tag }} 6 </label> 7 <div class="col-md-8 col-sm-8 "> 8 {{ field }} 9 {{ field.errors }} 10 </div> 11 {% endfor %} 12</div>
上記のコードではfieldにしている
- 'name',
- 'e_mail',
- 'phone_number',
- 'memo'
の全てがform.htmlで表示されてしまいます。
イメージですが、それぞれのfieldを指定して、以下のような表示にしたいです。
<div> name </div> <div> e_mail </div> <div> phone_number </div> <div> memo </div>
試したこと
form.htmlでCreateViewのように、
field.name
と指定しても、表示されません。
補足情報(FW/ツールのバージョンなど)
●開発環境
- Python: 3.7.5
- Django: 2.2.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。