Django的消息,算上两个用户之间的邮件数

问题描述 投票:0回答:3

即时通讯使用的django-邮递员为用户到用户的消息传送系统。现在我想在模板中显示许多消息是如何被用户之间发送

在models.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"))

我怎么能指望有多少消息被两个用户之间写的?

django django-models
3个回答
0
投票

第一过滤他们的两个消息和与.filter()的查询,然后计算项中的查询集)的总数量与.LEN(或.Count之间()


0
投票

假设你的模式被称为消息,你可以这样做:

# Returns the number of messages exchanged between SENDER_USER AND RECEIVER_USER
exchanged_messages = Message.objects.filter(sender=SENDER_USER).filter(receiver=RECEIVER_USER).count()

0
投票

假设你的模型信息,它被称为Message。我们想知道有多少条消息有user_1user_2之间,这意味着我们有多少条消息有user_1,发件人,user_2作为接收器,反之亦然。

我会用一个Q expression来表达这样的条件:

condition = (
    Q(sender=user_1, receiver=user_2) | Q(sender=user_2, receiver=user_1) 
)


Message.objects.filter(condition).count()
© www.soinside.com 2019 - 2024. All rights reserved.