django - 无法在 django 模型中向 TimeField 添加时间 []
问题描述
我有一个像这样的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 (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'>]
解决方案
推荐阅读
- docker - 从 docker 容器名称中删除随机字符串
- reactjs - 反应表动态页面大小,但有大小限制和分页
- c++ - 如何针对 c++ 最棘手的解析声明和填充三维向量作为结构的成员?
- java - 如何遍历对的数组列表以检索指定键的值?
- kotlin - 为什么返回调用者适用于`List`而不适用于`Map`?
- javascript - 使用触摸板为 d3 v5 创建 Hold + Tap 行为
- javascript - 使用 JavaScript 将字符串中的元音替换为字符串中的索引
- c# - 如何从文本文件中打印随机行但排除包含某些字符的行?C#
- javascript - 将画布层动态添加到传单?
- angular - 单击对话框外的区域时关闭/隐藏对话框