我想实现类似Facebook的未读项目/通知。我目前有以下模型:django实现未读项目
class UnreadItems(models.Model):
unread = models.BooleanField()
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
user = models.ForeignKey(User,null=True)
content_object = generic.GenericForeignKey('content_type','object_id')
class Meta:
db_table = 'unread_items'
每当有人产生任何别人,我创建了收件人为目标的新条目交谈/消息或。但是,创建未读很容易,但我应该如何以可管理的方式进行操作,以便在请求/查看资源时将项目标记为已读。
听起来合乎逻辑。但有时候,如果我只想计算未读项目,我不想将其设置为未读。与使用自定义管理器相比,它可以为信号完成吗? – goh
请解释一下“计算未读项目”的含义?如果您想要问您是否要计算给定用户的未读项目数,则可以执行类似UnreadItems.objects.filter(user = u).count()的转发查询。您还可以通过content_type if您正在尝试为用户查找给定类型的未读项目。使用content_types框架查找给定模型的类型,然后在筛选器查询中使用。 – arustgi
切记:信号对于操纵对象(CRUD)很有用。如果你只是想查询计数,你可以在视图中做到这一点 – arustgi