From 596e15293c9f522a2b001d49a0c40005711682a6 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 30 Jun 2012 14:30:32 +0200 Subject: [PATCH] Fixed #11162 -- Mentioned ValidationError in custom model field docs --- docs/howto/custom-model-fields.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/howto/custom-model-fields.txt b/docs/howto/custom-model-fields.txt index 99c5904fe9..8b4c2303ab 100644 --- a/docs/howto/custom-model-fields.txt +++ b/docs/howto/custom-model-fields.txt @@ -434,10 +434,14 @@ database, so we need to be able to process strings and ``Hand`` instances in p1 = re.compile('.{26}') p2 = re.compile('..') args = [p2.findall(x) for x in p1.findall(value)] + if len(args) != 4: + raise ValidationError("Invalid input for a Hand instance") return Hand(*args) Notice that we always return a ``Hand`` instance from this method. That's the -Python object type we want to store in the model's attribute. +Python object type we want to store in the model's attribute. If anything is +going wrong during value conversion, you should return a +:exc:`~django.core.exceptions.ValidationError` exception. **Remember:** If your custom field needs the :meth:`to_python` method to be called when it is created, you should be using `The SubfieldBase metaclass`_