如何在django中过滤多条消息
how to filter multiple messages in django
所以我最近做了一个消息过滤器,以便将两个人之间的所有消息都带到
def pmessage(request, pk):
user = User.objects.get(id=pk)
message = pm.objects.filter(Q(receiver=request.user, sender=user) | Q(receiver=user, sender=request.user))
form = dmform()
context = {
'message' : message,
'form' : form,
}
它的工作原理,只是它将消息按类别分组,即它会在另一个条件之前列出所有满足一个条件的消息,而不管哪个消息先出现,这违背了我的目标。
谢谢你
已编辑
下午模型
class pm(models.Model):
sender = models.ForeignKey(User, related_name='sender', on_delete=models.CASCADE)
receiver = models.ForeignKey(User, related_name='receiver', on_delete=models.CASCADE)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True) body = models.TextField()
unread = models.BooleanField(default=False)
def __str__(self):
return f'sender:{self.sender} - receiver:{self.receiver} - {self.body}'
您可以使用 .order_by('created')
订购消息:
def pmessage(request, pk):
message = pm.objects.filter(
Q(receiver=request.user, sender_id=pk) |
Q(receiver_id=pk, sender=request.user)
)<strong>.order_by('created')</strong>
form = dmform()
context = {
'message' : message,
'form' : form,
}
所以我最近做了一个消息过滤器,以便将两个人之间的所有消息都带到
def pmessage(request, pk):
user = User.objects.get(id=pk)
message = pm.objects.filter(Q(receiver=request.user, sender=user) | Q(receiver=user, sender=request.user))
form = dmform()
context = {
'message' : message,
'form' : form,
}
它的工作原理,只是它将消息按类别分组,即它会在另一个条件之前列出所有满足一个条件的消息,而不管哪个消息先出现,这违背了我的目标。
谢谢你
已编辑 下午模型
class pm(models.Model):
sender = models.ForeignKey(User, related_name='sender', on_delete=models.CASCADE)
receiver = models.ForeignKey(User, related_name='receiver', on_delete=models.CASCADE)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True) body = models.TextField()
unread = models.BooleanField(default=False)
def __str__(self):
return f'sender:{self.sender} - receiver:{self.receiver} - {self.body}'
您可以使用 .order_by('created')
订购消息:
def pmessage(request, pk):
message = pm.objects.filter(
Q(receiver=request.user, sender_id=pk) |
Q(receiver_id=pk, sender=request.user)
)<strong>.order_by('created')</strong>
form = dmform()
context = {
'message' : message,
'form' : form,
}