私のモデルでは、値 'A'、 'B'、 'C'のみを含むフィールドがあります。フィールドを宣言するときにchoice
パラメータを使用するのが最適でしょうか?Djangoの値のリストの検証
choice
パラメータを使用することを決定しておらず、カスタム検証ロジックを書きたいと思った場合は、どこに書きますか?これはモデルのclean
メソッドにありますか?私もclean_<fieldname>
メソッドを見たことがあります - これはフォームにのみ適用されますか?私はフォームを使用していないので、モデルでこの検証をしたいと思います。
class Action(models.Model):
"""
Contains the logic for the visit
"""
id = models.AutoField(primary_key=True)
path = models.CharField(max_length=65535, null=False)
to = models.IntegerField(null=False)
def clean(self, **kwargs):
"""
Custom clean method to do some validation
"""
#Ensure that the 'to' is either 1,2 or 3.
if self.to not in [0, 1, 2]:
raise ValidationError("Invalid to value.")
私が検証を行っているとき、値を返す必要がありますか?誰かが新しいレコードを作成すると、私のメソッドメソッドが呼び出されるのですか?
(私はドキュメントを読んだが、私はまだこれについて少し困惑している。)
おかげでトン。
私はこのブログを読むことをお勧めします:http://www.b-list.org/weblog/2007/nov/02/handle-choices-right-way/ – Nix