python - 为每个用户添加计数注释,然后按最近发生的日期排序
问题描述
我想获取按user_from
她/他的最后一条消息的日期排序的每条未读消息的计数。
class Chat(models.Model):
user_from = models.ForeignKey(settings.AUTH_USER_MODEL)
user_to = models.ForeignKey(settings.AUTH_USER_MODEL)
is_read = models.BooleanField(default=False)
added_on = models.DateTimeField(auto_now_add=True)
message = models.CharField(max_length=255)
我正在寻找一些这样的查询集输出:
输出查询集:
解决方案
from django.db.models import Count, Max
query_set = Chat.objects.values('user_from').annotate(unread_count=Count('user_from')).filter(is_read=False).annotate(last_time=Max('added_on')).order_by('-last_time')
推荐阅读
- powershell - 在 pwsh 中,如何使用像 {$_.UserId} 这样的脚本块从对象中获取一些信息?
- docker - 如何使用 ECR(弹性容器注册表)和 ECS(弹性容器服务)运行 kafka/zookeeper docker 映像?
- powerbi - 返回给定 2 个不同日期切片器的值差
- c# - 使用 Cognito 时是否在 LocalStack 中实现了 AdminResetUserPasswordAsync?
- java - Spark java返回html - 500内部服务器错误
- graph - 按下按钮并计数并转到图表
- prometheus - 计算prometheus的请求率
- excel-formula - 使用公式从excel中的另一个工作表复制超链接和友好名称
- sql - 使用结构查询语言搜索销售表中最常用的产品
- android - Android StateListDrawable 未更改为 state_pressed