forms.pyで、全角カナ以外の入力があった場合にname_kanaにエラーメッセージを割り当てています。
forms.py
def clean_name_kana(self): name_kana = self.cleaned_data['name_kana'] p = re.compile('[\u30A1-\u30F4]+') if not(p.fullmatch(name_kana)): raise forms.ValidationError("全角カナで入力してください。")
### keyが表示される駄目な例
view側で、form.errorsは辞書型のデータを取得するので、form.name_kana.errorsとすれば辞書型のvalueが表示されますが、errorだけだと、辞書型のkeyを表示します。
以下のように書くとエラーメッセージはname_kana となります。
client_input.html
{% for error in form.errors %} {{ error }} {% endfor %}
### 辞書型のvalueが表示される例
このように書くと、辞書型のkeyとvalueを取得できるので、指定したバリデーションメッセージを表示させる事ができます。
client_input.html
{% for key, value in form.errors.items %} {{ value }} {% endfor %}
これ修正するのに凄い時間かかった。もー