У меня есть django модель, подобная этой ...
class ConversionResults(models.Model):
conversion_results_id = models.AutoField(primary_key=True)
conversion_rate_a = models.DecimalField(max_digits=4, decimal_places=2)
clicks_a = models.IntegerField()
conversion_rate_b = models.DecimalField(max_digits=4, decimal_places=2)
clicks_b = models.IntegerField()
week = models.IntegerField()
date = models.DateField()
time = models.TimeField()
objects = models.Manager()
class Meta:
db_table = 'conversion_results'
def __int__(self):
return self. conversion_results_id
Когда я пытаюсь добавить данные в модель, как показано ниже
ConversionResults(
conversion_rate_a=conversion_rate_today_a,
conversion_rate_b=conversion_rate_today_b,
clicks_a=ctc_today_a,
clicks_b=ctc_today_b,
week=week,
date=today_date,
time=datetime.datetime.today().time() # the error is here
).save()
Я получаю ошибку с поле времени, как показано ниже
graphql.error.located_error.GraphQLLocatedError: [<class 'decimal.InvalidOperation'>]
Я не понимаю, как это связано даже с десятичной дробью, модель содержит TimeField. Любая помощь будет оценена
Ниже приведен полный Traceback
Traceback (most recent call last):
File "/home/shashank/anaconda3/lib/python3.6/site-packages/promise/promise.py", line 487, in _resolve_from_executor
executor(resolve, reject)
File "/home/shashank/anaconda3/lib/python3.6/site-packages/promise/promise.py", line 754, in executor
return resolve(f(*args, **kwargs))
File "/home/shashank/anaconda3/lib/python3.6/site-packages/graphql/execution/middleware.py", line 75, in make_it_promise
return next(*args, **kwargs)
File "/home/shashank/project/server/data_distribution/query.py", line 416, in resolve_daily_updates
time=datetime.datetime.today().time() # the error is here
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/base.py", line 741, in save
force_update=force_update, update_fields=update_fields)
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/base.py", line 779, in save_base
force_update, using, update_fields,
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/base.py", line 870, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/base.py", line 908, in _do_insert
using=using, raw=raw)
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/query.py", line 1186, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1331, in execute_sql
for sql, params in self.as_sql():
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1275, in as_sql
for obj in self.query.objs
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1275, in <listcomp>
for obj in self.query.objs
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1274, in <listcomp>
[self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1215, in prepare_value
value = field.get_db_prep_save(value, connection=self.connection)
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 1563, in get_db_prep_save
return connection.ops.adapt_decimalfield_value(self.to_python(value), self.max_digits, self.decimal_places)
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/backends/base/operations.py", line 516, in adapt_decimalfield_value
return utils.format_number(value, max_digits, decimal_places)
File "/home/shashank/anaconda3/lib/python3.6/site-packages/django/db/backends/utils.py", line 238, in format_number
value = value.quantize(decimal.Decimal(1).scaleb(-decimal_places), context=context)
graphql.error.located_error.GraphQLLocatedError: [<class 'decimal.InvalidOperation'>]