Inbox = Messages.objects.filter(Q(sender=request.user) | Q(receiver=request.user))
context['Inbox'] = Inbox
目前我正在使用它來獲取當前登錄用戶的所有訊息。
我想按時間排序并讀取狀態。這樣最新的未讀訊息就會最先出現。
模型.py
class Messages(models.Model):
sender = models.ForeignKey(Profile,related_name='sender',on_delete=models.CASCADE)
receiver = models.ForeignKey(Profile,related_name='receiver',on_delete=models.CASCADE)
subject = models.CharField(default='',max_length=100)
text = models.CharField(default='',max_length=4096)
time = models.DateTimeField(auto_now_add=True)
read = models.BooleanField(default=False)
def __str__(self):
return '{} to {} :{}'.format(self.sender,self.receiver,self.text)
uj5u.com熱心網友回復:
這可以使用Model.objects.order_by()來實作。在您的情況下,這將如下所示:
Inbox = Messages.objects.filter(Q(sender=request.user) | Q(receiver=request.user)).order_by("-time", "read")
或者"-read",取決于您是否希望它們按升序/降序排序。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/405340.html
標籤:
