Djangoのform機能におけるcleanメソッドの使い方について

前提

  • Djangoを勉強中の駆け出しプログラマ

知りたいこと

  • Djangoのcleanメソッドの良い使い方

具体的な質問

とあるサイト(リンク)では、以下のようにclean_data取り出して使用しておりました。

Python

1def clean(self):2 cleaned_data = super().clean()3 name = cleaned_data.get("name")4 nickname = cleaned_data.get("nickname")5 if name == nickname:6 raise forms.ValidationError("登録者名とニックネームを同じにしないで下さい")7 return cleaned_data

また、自分の持っている書籍だと、

Python

1def clean(self):2 password = self.cleaned_data['password']3 4...(中略)..5 6# ユニーク制約を自動でバリデーションしてほしい場合は super の clean() を明示的に呼び出す7super().clean()

みたいな書き方をしていました。

  • cleaned_dataの使い方としては、self.cleaned_dataで操作するのと、cleaned_data = super().clean()で呼び出してから操作するの、どちらが正しいのでしょうか

  • 書籍のコメントアウトの「ユニーク制約を自動でバリデーションしてほしい場合は」これはどのような意味なのでしょうか。継承元にユニークな制約などが設定されているのであれば、その制約の中身なども知りたいです。

基本的な質問かもしれませんが、もしご存じの方がいらっしゃいましたらご教授いただけますと大変助かります。よろしくお願いします。

コメントを投稿

0 コメント