Loading docs/howto/custom-model-fields.txt +5 −1 Original line number Diff line number Diff line Loading @@ -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`_ Loading Loading
docs/howto/custom-model-fields.txt +5 −1 Original line number Diff line number Diff line Loading @@ -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`_ Loading