选择最新活动时出错

时间:2017-06-03 04:55:35

标签: django python-2.7

我在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登录

1 个答案:

答案 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