Django 如何获取模型字段的当前用户

Django 如何获取模型字段的当前用户,django,django-models,Django,Django Models,对于下面的unread定义,我如何让当前用户能够计算给定用户的MessageThreads数 class MessageThread(models.Model): subject = models.CharField(max_length=256, blank=False) def unread(self): return self.objects.filter(***messagerecipient__recipient='current user'***).

对于下面的
unread
定义,我如何让当前用户能够计算给定用户的MessageThreads数

class MessageThread(models.Model):
    subject = models.CharField(max_length=256, blank=False)

    def unread(self):
        return self.objects.filter(***messagerecipient__recipient='current user'***).distinct().count()

class MessageRecipient(models.Model):
    message = models.ForeignKey(Message)
    recipient = models.ForeignKey(User)
    status = models.CharField(max_length=20, choices=MESSAGE_STATUS, default="unread")

您必须将请求传递给以下方法:

def unread(self, request):
    return self.objects.filter(messagerecipient__recipient=request.user).distinct().count()
但是,当您调用模型方法(对特定行进行操作,即单个MessageThread)时,这没有意义—您应该编写一个模型管理器来对整个表进行操作(即在MessageThread表中查找所有未读线程)

现在你可以打电话:

unread_threads = MessageThread.objects.get_unread_threads(some_user_obj)
unread()。
unread_threads = MessageThread.objects.get_unread_threads(some_user_obj)