add_error(field, error)で「Pythonではfieldじゃなくてattributeじゃないの!?」と慌てた話
Djangoドキュメントを読んで慌てたけれども、ドキュメントは間違えていなかったという話です。
add_errorとは
エラーを引数にもつフォーム型の変数に、エラーを追加する関数です。
混乱
fieldってなんだ!? Pythonでは、フィールドのことを attributeというのではないのか!? と焦りました:(;゙゚'ω゚'):
Djangoドキュメントはこう書いていた
The field argument is the name of the field to which the errors should be added.
引用 https://docs.djangoproject.com/en/2.0/ref/forms/api/
引数「field」には、エラーが追加されるフィールドの名前を入れてください
とのこと。
こういうことだった
add_error(field, error)
のfieldは、field型のattributeだった。
たとえば、
add_error(‘password’, error)
こちらは、forms.pyで定義しているクラスの
‘password’ というフィールドを引数にしています。
forms.py
from django import forms class RegistrationForm(forms.Form): username = forms.CharField() password = forms.CharField() #ここのこと email = forms.EmailField()
add_error(password, error)じゃダメなの?
ダメです。
というのも、 fieldという引数をpasswordという名前の引数に変えたので別物 になってしまうからです。