使用inspectdb,我能够从postgres 到django 中获得一个“间隔”字段。在 Django 中,它是一个 TextField。我检索到的对象确实是一个 timedelta 对象!

现在我想把这个 timedelta 对象放在一个新模型中。做到这一点的最佳方法是什么?因为在 TextField 中放置 timedelta 会导致对象的 str 版本......

最佳答案

您可以轻松地将 timedelta 标准化为以天或秒为单位的单个浮点数。

这是“标准化为天”版本。

float(timedelta.days) + float(timedelta.seconds) / float(86400)

您可以轻松地将浮点数转换为时间增量。
>>> datetime.timedelta(2.5)
datetime.timedelta(2, 43200)

因此,将您的 timedelta 存储为浮点数。

这是“标准化到秒”版本。
timedelta.days*86400+timedelta.seconds

这是相反的(使用秒)
datetime.timedelta( someSeconds/86400 )

关于django - 如何将timedelta放入django模型中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/801912/

10-15 11:35