python - TypeError:+ 不支持的操作数类型:“DateField”和“datetime.timedelta”
问题描述
在我的模型中,有、start_date_time
和字段,其中必须等于和 timedelta 的总和。在我的情况下,timedelta的天等于并且是天/月/年/之一。这是我的代码:end_date_time
period
period_type
end_date_time
start_date_time
period
period_type
models.py
:
class PeriodTypeEnum(models.IntegerChoices):
Years = 'years'
Months = 'months'
Days = 'days'
class Policy(models.Model):
policy_type = models.ForeignKey('PolicyType', on_delete=models.CASCADE)
blank = models.OneToOneField('blank_app.Blank', on_delete=models.CASCADE)
period = models.IntegerField()
period_type = models.IntegerField(choices=PeriodTypeEnum.choices)
start_date_time = models.DateField(blank=True, null=True)
end_date_time = models.DateField(default = start_date_time + timedelta(days=1), blank=True, null=True)
PS:在end_date_time
字段中,timedelta(days + x) - x 必须等于period
。
解决方案
此代码将不起作用,因为start_date_time
它不是一个值,而是一个将保留值的字段。
如上一个答案中所述,您可以覆盖清理/保存方法来设置end_date_time
. 另一种选择是根据何时/如何设置使用pre_save或post_save信号。start_date_time
推荐阅读
- c++ - 我对网格旅行者问题的实现仅适用于小网格
- python - PyGithub - 无法从 github 导入 Github
- java - 如何获取docker镜像中的线程数
- javascript - 如何将图标和文本居中对齐?
- python - 如何在熊猫中编码特殊字符?
- php - 如何将 PHP 值发送回 HTML 表单?
- powershell-2.0 - 当Powershell 2中的文件夹达到一定大小时重命名文件夹+删除超过一定大小的任何内容
- python - 以与输入相同的顺序返回列表的索引
- python - 命令“python setup.py egg_info”在 /tmp/pip-build-qgafa8x3/numba/ 中失败,错误代码为 1
- spring-boot - 保存新的父+子实体时“参数索引超出范围”(manyToOne)