将相同字段值的组字段彼此相邻

时间:2014-05-22 11:52:09

标签: python django

我的应用程序上有活动流,我想在行中只显示一个相同类型的字段活动。例如,当用户添加3条评论,然后添加文章,接下来我希望在活动流3条目中有3条评论。但是我必须在每个活动的数据库中存储单独的字段,以便根据需要进行更精确的活动。

class ActivityStream(models.Model):

    type = models.CharField(max_length=10)
    created = models.DateTimeField(auto_now_add=True)

换句话说,我在ActivityStream上有一些活动,每个活动都设置了类型和创建日期。我需要查询它(按创建日期排序),但是对于具有相同类型的分组活动,并且只有在它们之间没有其他类型的活动时才会查询。

数据库中的示例数据:

+----------------+---------------------+
|      type      |       created       |
+----------------+---------------------+
| comment        | 2014-05-21 22:33:39 |
| comment        | 2014-05-21 22:35:43 |
| article        | 2014-05-22 11:17:11 |
| article        | 2014-05-22 12:23:37 |
| comment        | 2014-05-22 12:27:11 |
| comment        | 2014-05-22 12:29:33 |
| comment        | 2014-05-22 12:37:01 |
| comment        | 2014-05-22 13:04:14 |
| article        | 2014-05-22 14:44:11 |
| comment        | 2014-05-23 17:51:17 |
| article_delete | 2014-05-23 17:55:17 |
| comment        | 2014-05-27 9:37:01  |
+----------------+---------------------+

我想从queryset获得什么:

[
    {'type': u'comment',        'created': datetime(2014, 5, 21, 22, 35, 43), 'count': 2},
    {'type': u'article',        'created': datetime(2014, 5, 22, 12, 23, 37), 'count': 2},
    {'type': u'comment',        'created': datetime(2014, 5, 22, 13, 4, 14),  'count': 4},
    {'type': u'article',        'created': datetime(2014, 5, 22, 14, 44, 11), 'count': 1},
    {'type': u'comment',        'created': datetime(2014, 5, 23, 17, 51, 17), 'count': 1},
    {'type': u'article_delete', 'created': datetime(2014, 5, 23, 17, 55, 17), 'count': 1},
    {'type': u'comment',        'created': datetime(2014, 5, 27, 9, 37, 1),   'count': 1},
]

有没有办法在django中使用queryset?

0 个答案:

没有答案