【发布时间】:2016-04-07 15:51:32
【问题描述】:
我正在制作对话系统
class Dialog(models.Model):
create_date = models.DateTimeField(auto_now_add=True, blank=False, null=False)
author = models.ForeignKey(User, related_name="author_customer", blank=False, null=False)
interlocutor = models.ForeignKey(User, related_name="interlocutor_customer", blank=False, null=False)
archive_date = models.DateTimeField(blank=True, null=True)
last_view_date = models.DateTimeField(blank=True, null=True)
class DialogMessage(models.Model):
create_date = models.DateTimeField(auto_now_add=True, blank=False, null=False)
dialog = models.ForeignKey(Dialog, blank=False, null=False)
author = models.ForeignKey(User, blank=False, null=False)
message = models.TextField(blank=False, null=False)
attachment = models.FileField(upload_to='dialogs', blank=True, null=True)
我想通过每个对话框的创建日期来获取最后一条消息
* Dialog1
Last Message
* Dialog2
Last Message
我试着让它变成这样
DialogMessage.objects.values('dialog_id').annotate(last_date=Max('create_date'))
但它给了我
[{'dialog_id': 1, 'last_date': datetime.datetime(2016, 4, 6, 3, 15, 56, 267626, tzinfo=<UTC>)}, {'dialog_id': 2, 'last_date': datetime.datetime(2016, 4, 7, 13, 24, 33, 856453, tzinfo=<UTC>)}, {'dialog_id': 3, 'last_date': datetime.datetime(2016, 4, 7, 13, 25, 14, 948088, tzinfo=<UTC>)}]
我怎样才能不仅获得 last_date,而且获得整个 DialogMessage
最后我想要每个对话框的最后一个 DialogMessage 列表
【问题讨论】:
标签: python django group-by foreign-keys