2017-06-03 25 views
0

我在DB中有表格MyHistory表。根据活动历史记录,我必须在我的活动中选择最新的活动,例如LOGIN和SUPPORT。我必须选择最近进行的事件。拾取最新事件时出错

注意:事件没有优先级,粒子事件必须执行命令。

在运行下面的代码,我得到了像

错误错误:错误 - 值过多解压

什么是错在下面的代码?

高清my_welcome_msg(个体经营):

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 |描述| user_id | event_type | CLUSTER_ID

1 2017年5月31日1时00分58秒支持

2 2017年5月30日23时○○分38秒LOGIN

回答

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 
+0

当我想你的代码,得到一个错误的R - 不支持的操作类型为 - :“NoneType”和“datetime.datetime” –

+0

@AnilKumarThotamalla请,您的错误也模型定义提供全面回溯。很明显,我的代码不包含任何日期算术,所以它不能产生这样的错误。 –

+0

对不起,我不是说你的代码。我已经拿到你的示例代码并在我的代码中实现。所以我得到了错误。 –