django - Django消息,计算两个用户之间的消息数
问题描述
我使用 django-postman 作为用户到用户的消息传递系统。现在我想在模板中显示 2 个用户之间发送了多少条消息
在模型.py
sender = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='+',
null=True, blank=True, verbose_name=_("sender"))
recipient = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='+',
null=True, blank=True, verbose_name=_("recipient"))
我如何计算两个用户之间写了多少条消息?
解决方案
假设您的消息模型称为Message
. 我们想知道user_1
和之间有多少条消息user_2
,这意味着我们user_1
作为发送者user_2
和接收者有多少条消息,反之亦然。
我会使用Q 表达式来表达这样的条件:
condition = (
Q(sender=user_1, receiver=user_2) | Q(sender=user_2, receiver=user_1)
)
Message.objects.filter(condition).count()
推荐阅读
- python - 如何将方法附加到关闭 python 应用程序的事件?
- javascript - 如何测试组件实例使用来自本机模块的`ref`
- javascript - 在 post 请求 axios 中传递参数
- javascript - Uncaught SyntaxError: Invalid or unexpected token,在此处尝试了所有解决方案,但没有任何效果
- php - 将 UTF-8 重音转换为 ASCII
- android - 重新启动时忽略开发人员选项 - 索尼 xperia xz1 compact
- google-cloud-platform - 如何禁止数据导出项目外
- javascript - 如何使用 jquery/Javascript 自动点击锚标记?
- c# - 无法通过 Azure 仪表板中的“下载为 Zip”下载 Web 应用程序代码
- python - 如何使用烧瓶将数据传递到html页面?