[Django]フィールドをタグで整形

Djangoのフォームクラスには出力機能が備えられている
– form.as_table
– form.as_p
– form.as_ul

<form action="{% url 'index' %}" method="post">
		{% csrf_token %}
		<table>
		{{ form.as_table }}
			<tr>
				<td></td>
				<td><input class="btn btn-primary" type="submit" value="click"></td>
			</tr>
		</table>
	</form>

– form.as_tableだけだとtr, tdタグしか出力されない為、tableタグを用意する必要がある

## Bootstrapクラス
### forms.py
/hello/forms.py

class HelloForm(forms.Form):
	name = forms.CharField(label='name', widget=forms.TextInput(attrs={'class':'form-control'}))
	mail = forms.CharField(label='mail', widget=forms.TextInput(attrs={'class':'form-control'}))
	age = forms.IntegerField(label='age', widget=forms.NumberInput(attrs={'class':'form-control'}))

– TextInputはformsはinput type=”text”
– NumberInputはformsはinput type=”number”

### index.html
/hello/templates/hello/index.html

<form action="{% url 'index' %}" method="post">
		{% csrf_token %}
		{{ form.as_table }}
		<input class="btn btn-primary my-2" type="submit" value="click">
	</form>

attributeは絶対に実装するので、このwidgetの書き方は必須です。