Djangoの入力フォームをフォームクラスを使って書いていきたい。
HTMLでベタ書きしているものをフォームクラスに移管する。
### Form Class
まずfomrs.pyを作ります。
/sales/forms.py
from django import forms class MasterForm(forms.Form): name = forms.CharField(label='name') office = forms.CharField(label='office') zipcode = forms.CharField(label='zipcode') prefecture = forms.CharField(label='prefecture') address = forms.CharField(label='address') tel = forms.CharField(label='tel') fax = forms.CharField(label='fax') email = forms.EmailField(label='email') name_top = forms.CharField(label='name_top') position_top = forms.CharField(label='position_top')
次にビュー関数を編集する。
/sales/views.py
from .forms import MasterForm def master(request): params = { 'form': MasterForm() } return render(request, 'sales/master.html', params)
/sales/templates/sales/master.html
<form action="{% url 'master_complete' %}" method="post"> {% csrf_token %} {{ form }} <br><br> <div class="col text-center"> <button class="btn" type="submit">更新</button> </div> </form>
forms.pyの使い方はわかったが、view側のスタイリングをどうにかしないといけない。
form.as_tableやform.as_pだと、inputのcol-md-*の調整ができないないので、方法を考える必要がある。