Сделайте функцию clean_field1
в вашей форме и проверьте ее там. Выдать ошибку проверки, если она неправильная, и переформатировать и вернуть «правильное» значение, если оно есть. Пример:
http://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-a-specific-field-attribute
Обновление:
Уточненный вопрос: пользователь хочет поле модели, которое делает это.
Переопределить FloatField
и подпрограммы get_prep_value
и to_python
в пределах:
class MagicalFloatField(FloatField):
def to_python( self, value_from_db ):
...
return what_should_go_into_model_field_value
def get_prep_value( self, value_from_field ):
...
return what_should_go_into_db
Так что вы можете сделать "5:26" <-> "5.26" там. Затем используйте поле в вашей модели:
class MagicalModel(Model):
foo = MagicalFloatField()
Справка:
http://docs.djangoproject.com/en/dev/howto/custom-model-fields/#django.db.models.to_python
Кроме того, для примера того, что он ожидает и как вызвать ошибки валидации, посмотрите на то, что вы делаете на подклассы - посмотрите FloatField
в site-packages/django/db/models/fields/__init__.py