Eta*_*oin 1 python django django-reversion
我正在使用django-reversion文档调用低级API,以便在我自己的代码中访问reversion历史记录,除了admin.为了存储元数据,我Revision通过设置我自己的模型来扩展模型,包括a OneToOneField(Revision).到现在为止还挺好.
但考虑到参照Revision,我怎么能直接访问修订之前呢?例如,要生成此修订版与上一版本之间的更改列表,是否有更有效的方法,而不是回调reversion.get_for_object和搜索列表中我正在寻找的版本?
Revision对象具有一个date_created属性,因此您可以编写一个查询,以便在给定修订版之前为您的对象选择单个最新修订版本date_created.我基本上复制了低级API get_for_date函数的实现,只需一次更改 - 使用"date_created__lt"而不是"__lte":
def get_previous(object, date):
"""Returns the latest version of an object prior to the given date."""
versions = reversion.get_for_object(object)
versions = versions.filter(revision__date_created__lt=date)
try:
version = versions[0]
except IndexError:
raise Version.DoesNotExist
else:
return version
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1495 次 |
| 最近记录: |