前提
- 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 コメント