python - Converting time string to TimeField -
i have following field on django model:
validationerror: [u"'36.332' value has invalid format. must in hh:mm[:ss[.uuuuuu]] format."]
from django.db import models class testsuite(models.model): time = models.timefield() when parse .xml test report files, have following field:
'time': u'36.332' when try create model via **kwargs i'm seeing following error:
kwargs = {'time': u'36.332'} testsuite = testsuite(**kwargs) traceback (most recent call last): file "<console>", line 1, in <module> file "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 710, in save force_update=force_update, update_fields=update_fields) file "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 738, in save_base updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) file "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 822, in _save_table result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) file "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 861, in _do_insert using=using, raw=raw) file "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 127, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) file "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 920, in _insert return query.get_compiler(using=using).execute_sql(return_id) file "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 970, in execute_sql sql, params in self.as_sql(): file "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 928, in as_sql obj in self.query.objs file "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 710, in get_db_prep_save prepared=false) file "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 2293, in get_db_prep_value value = self.get_prep_value(value) file "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 2288, in get_prep_value return self.to_python(value) file "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 2275, in to_python params={'value': value}, validationerror: [u"'36.332' value has invalid format. must in hh:mm[:ss[.uuuuuu]] format."] how can convert string 'time' timefield() object ? * note: * '36.332' means 36.332 seconds
the timefield field not used save and/or express amount of time, "x seconds", time in day, saying "x event occurred @ 03:00:00"; here, "03:00:00" value timefield. namely might see time part of datetime.datetime object.
if need store amount of time, can use other built-in field (integerfield, charfield, etc) fits needs , manipulate yourself.
depending on need value for, django-timedeltafield or durationfield may useful well. although durationfield available in django 1.8 @ moment.
i hope helps! :)
Comments
Post a Comment