python - 使用 django-simple-history 和 django-queryable-properties 在 Django 查询集中添加历史字段值
问题描述
所以一些快速的背景知识:我正在尝试构建一个查询集以链接到管理面板并将其合并到整个应用程序堆栈中。这将帮助我为我的最终用户按需提供他们需要的信息,同时减少我手动创建和共享报告的需要。我正在尝试完成以下任务:
from queryable_properties.properties import queryableproperty
from simple_history.models import HistoricalModel
from datetime import date, timedelta
from django.db import models
class DataReport(models.Model):
history = HistoricalRecord()
formatted_date = models.DateTimeField(verbose_name="FormattedDate")
date = models.CharField(verbose_name="Date", max_length=255, null=True)
report_title= models.CharField(verbose_name="Report Title", max_length=255, null=True)
severity_score = models.IntegerField(blank=True, null=True)
@queryableproperty
def get_prev_score(self):
exclude_filters = {
"severity_score__isnull": True,
"date__lte": date.today() - timedelta(30)
}
hist_qs = self.history.exclude(**exclude_filters)
prev_score = hist_qs.order_by('date').first()
return prev_score.severity_score if prev_score else return None
理想情况下,我会从这里运行DateReport.objects.filter(severity_score__gt=F('get_prev_score')
,但这不起作用,因为它需要注释,并且如果不通过 F 对象显式引用数据字段就无法进行注释,并且不能HistoricalRecord
与 F 对象一起使用。我尝试过使用子查询,但只能在注释时返回空值。
有什么想法吗?
解决方案
推荐阅读
- flutter - 当我点击一个按钮时,我的颤动中出现错误
- python-3.x - 根据条件在熊猫数据框中添加一列
- google-cloud-firestore - 我无法在组件模板中显示 vuex 状态值
- javascript - 使用 JavaScript Reduce 返回对象
- python - Python click 库中急切选项的非交互式确认
- android - 我如何创建这种 textview 样式?
- mongodb - 执行mongo的脚本
- javascript - React 组件中出现意外的令牌错误
- python - Ubuntu:双击 ipynb 文件以使用 jupyter-lab 打开
- javascript - 事务无法回滚,因为它已完成状态:提交