[Django]formモジュール1

## formモジュール
### CharField
– input type=”text”を生成
– requred, min_length, max_length

### EmailField
– input type=”emailを生成

### IntegerField, FloatField
– input type=”number”を生成

### URLField
– input type=”url”

### 日時に関するフィールド
– DateField, TimeField, DateTimeField

### BooleanField
/hello/forms.py

class HelloForm(forms.Form):
	check = forms.BooleanField(label='Checkbox', required=False)

/hello/templates/hello/index.html

<h1 class="display-4 text-primary">{{title}}</h1>
	<p class="h5 mt-4">{{result|safe}}</p>
	<form action="{% url 'index' %}" method="post">
		{% csrf_token %}
		<table>
			{{ form.as_p }}
			<tr>
				<td></td>
				<td><input class="btn btn-primary my-2" type="submit" value="click"></td>
			</tr>
		</table>
	</form>

/hello/views.py

class HelloView(TemplateView):

	def __init__(self):
		self.params = {
			'title': 'Hello',
			'form': HelloForm(),
			'result': None
		}

	def get(self, request):
		return render(request, 'hello/index.html', self.params)

	def post(self, request):
		if('check' in request.POST):
			self.params['result'] = 'Checked!!'
		else:
			self.params['result'] = 'not checked...'
		self.params['form'] = HelloForm(request.POST)
		return render(request, 'hello/index.html', self.params)

### NullBooleanField
– Yes, No, Unknownの項目を持つメニュー

class HelloForm(forms.Form):
	check = forms.NullBooleanField(label='Checkbox')
	def post(self, request):
		chk = request.POST['check']
		self.params['result'] = 'you selected: "' + chk + '".'
		self.params['form'] = HelloForm(request.POST)
		return render(request, 'hello/index.html', self.params)