Python 如何获取每个用户的未读消息?

Python 如何获取每个用户的未读消息?,python,django,django-models,Python,Django,Django Models,我正在创建一个django web应用程序。我想创建一个单向消息系统,这样用户就可以从管理员那里接收消息。目前,我使用的模型如下: from django.db import models from django.contrib.auth.models import User class AdminMessage(models.Model): title = models.CharField(max_length=120) receivers = models.ManyToMa

我正在创建一个django web应用程序。我想创建一个单向消息系统,这样用户就可以从管理员那里接收消息。目前,我使用的模型如下:

from django.db import models
from django.contrib.auth.models import User

class AdminMessage(models.Model):
    title = models.CharField(max_length=120)
    receivers = models.ManyToManyField(User)
    message = models.TextField()
    is_read = models.BooleanField(default=False)

问题是我希望每个用户都能在其个人资料中看到其未读消息。如何才能做到这一点?

如果您希望每个接收者的邮件也具有未读状态,则需要一个模型:

class AdminMessageReceiver(models.Model):
    message = models.ForeignKey(AdminMessage)
    receiver = models.ForeignKey(User)
    is_read = models.BooleanField(default=False)
然后,您可以将其作为多对多关系的一个连接:

class AdminMessage(models.Model):
    title = models.CharField(max_length=120)
    receivers = models.ManyToManyField(User, through=AdminMessageReceiver)
    message = models.TextField()

谢谢你的回复。我尝试了你的解决方案,几乎成功了,但出现了几个问题。首先,在我的管理页面中,我不能从“AdminMessage”部分选择接收者;其次,即使我想从“AdminMessageReceiver”部分发送消息,我也不能选择多个用户,因为两个模型之间的关系定义为ForeignKey。