即时通讯使用的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"))
我怎么能指望有多少消息被两个用户之间写的?
第一过滤他们的两个消息和与.filter()的查询,然后计算项中的查询集)的总数量与.LEN(或.Count之间()
假设你的模式被称为消息,你可以这样做:
# 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()
假设你的模型信息,它被称为Message
。我们想知道有多少条消息有user_1
和user_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()