我在DB中有表说MyHistory表。根据活动历史记录,我必须在我的活动中选择最新活动,如LOGIN和SUPPORT。我必须选择最近执行的任何事件。
注意:事件没有微粒事件必须执行命令的优先级。
运行以下代码时,我收到了错误
错误:错误 - 解压缩的值太多
以下代码有什么问题?
def my_welcome_msg(self):
msg_created_date = MyHistory.objects.select_related().filter(
cluster=self.cluster).filter(
event_type=MyHistory.SUPPORT).filter(MyHistory.LOGIN).order_by('created_date')[0].created_date
return msg_created_date
我在表格中有与单个user_id相关的记录,如下所示。
| id | created_date | modified_date | description | user_id | event_type | cluster_id
1 2017-05-31 01:00:58支持
2 2017-05-30 23:00:38登录
答案 0 :(得分:1)
您的代码存在一些问题。首先,Django长时间不支持空select_related
,你要么使用非常过时的Django版本,要么明确列出要获取的所有相关模型。其次,您的代码尝试获取具有互斥类型的MyHistory
个对象。第三,您的代码按错误的顺序按日期排序。
last_msg = (MyHistory.objects
.filter(cluster=self.cluster)
.filter(event_type__in=[MyHistory.SUPPORT, MyHistory.LOGIN])
.order_by('-created_date').first())
return last_msg.created_date if last_msg else None