python - How to change form fields' value before validation? -


i have floatfield in models.py has store (among other things) minutes, seconds , milliseconds. it's no biggie store them in format of ss.ms, have provide possibility insert them via modelform in format of mm.ss.ms.
problem is, form validation disapproves of mm.ss.ms floatfield , i'm struggling find workaround.

_clean functions great, run after django validations. how clean data form before gets validated django?

edit:

models.py

from django.db import models  class result(models.model):     date = models.datefield()     result = models.floatfield()     rank = models.integerfield(blank=true, null=true) 

forms.py

class addresult(forms.modelform):     class meta:         model = result         fields = ('result', 'rank', 'date')      def __init__(self, *args, **kwargs):         self.profile = kwargs.pop('profile', none)         super(addresult, self).__init__(*args, **kwargs)         self.helper = formhelper()         self.helper.label_class = 'form-label-div'         self.helper.field_class = 'form-field-div'         self.helper.label_class = 'col-xs-4'         self.helper.field_class = 'col-xs-8'         self.helper.layout = layout(             div(                 div(                     'result',                     css_class="col-xs-4",                 ),                 div(                     'rank',                     css_class="col-xs-4",                 ),                 css_class="row",             ),             div(                 div(                     'date',                     css_class="col-xs-4",                     css_id="date-picker"                 ),                 div(                     css_class="col-xs-4",                     css_id="date-picker"                 ),                 css_class="row",             )         )      def save(self, commit=true):         result = super(addresult, self).save(commit=false)         if self.profile:             result.profile = self.profile         result.save() 

ps! wrote had problematic integerfield, kind of brain fart. we're talking floatfield of course. main question remains same.

i suggest not use models forms instead use forms.form , in view before ** form.is_valid() ** try retrieve form fields of request method. may helps.


Comments