我使用django-postman作为用户到用户消息传递系统的用户。现在我想在模板中显示2个用户之间发送了多少条消息
在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"))
我如何计算两个用户之间写了多少条消息?
答案 0 :(得分:0)
首先使用.filter()进行查询,以过滤二者的消息,然后使用.len()或.count()计数查询集中的项目总数
答案 1 :(得分:0)
假设您的模型名为Message,您可以这样做:
# 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()
答案 2 :(得分:0)
假设您的消息模型为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()