首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django模型按日期和日期时间的历史记录

Django模型按日期和日期时间的历史记录
EN

Stack Overflow用户
提问于 2018-01-25 05:49:34
回答 1查看 1K关注 0票数 0

假设我有这样的模型:

代码语言:javascript
复制
class Account(models.Model):
    balance = models.IntegerField()
    debt = models.IntegerField()
    history = HistoricalRecords()

我使用django-simple-history来获取模型的实例,因为它会在提供的日期和时间存在:

代码语言:javascript
复制
inst = Account.history.as_of(datetime.datetime.now().date)

它工作得很好,但我想获得一个实例,其中余额字段表示为它在提供的日期和时间将存在,然后债务字段将是该日期的最近。我不知道这是不是可能,我什么也没找到。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-25 06:11:11

历史ORM将返回一个基于您提交的模型的模型,因为它在那个时间点存在。

代码语言:javascript
复制
account = Account.objects.create(balance=1, debt=1)
account.save()
history_obj = account.history.last()
print(history_obj.debt)  # returns 1

account.debt = 222
account.save()
new_history_obj = account.history.last()
print(new_history_obj.debt)  # returns 222

假设您正在使用Account.history.as_of()方法返回要从中读取的历史记录对象,您可以这样做:

代码语言:javascript
复制
yesterday = datetime.datetime.now() - datetime.timedelta(days=1)
history_obj = Account.history.as_of(yesterday)
print(history_obj.debt)  # returns not the current debt, but the debt as-of yesterday

除非我误解了你希望实现的目标,否则你可以用你的问题中的内容来实现这个目标:

代码语言:javascript
复制
inst = Account.history.as_of(datetime.datetime.now().date)
print(inst.debt)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48432195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档