相同的通知给多个选定的用户在django

pkln4tw6  于 2023-03-04  发布在  Go
关注(0)|答案(1)|浏览(120)

我正尝试在Django的网站上实现一个通知页面,但我遇到了一个问题,那就是如何向多个用户发送相同的通知。
假设我只需要将它发送给一个用户,那么我就可以创建一个通知模型

noti = models.TextField()
user= models.foreignkey
is_seen = models.bool

所以这只是一个示例,但问题是我如何将此通知发送给选定的多个用户
重要的一点是is_seen对于每个用户都是强制的
我希望你能理解

tpgth1q7

tpgth1q71#

我认为这取决于这些数据将来如何增长,因为如果您的所有通知都发送给多个用户,那么您可以有一个Notification模型,其中User与ManyToMany有关系。

class Notification(models.Model):
    message = models.TextField()
    users = models.ManyToMany(User, through='UserNotification')

class UserNotification(model.Model):
    user = models.ForeignKey(User)
    notification = models.ForeignKey(Notification)
    is_seen = models.BooleanField()

但另一个问题是,如果你想建立类似于你分享的东西,那也没问题。我不认为这是一个为多个用户添加相同消息的问题。在我看来,这比M2M关系更灵活。随着应用程序的增长,你可以在未来轻松地扩展这一点。

class Notification(model.Model):
    message = models.TextField()
    user = models.ForeignKey(User)
    is_seen = models.BooleanField)

另一种情况是,如果你想要有更多的关系,如果需要添加更多的与通知相关的信息,这就为将来在存储信息方面提供了更大的改进空间。

class Notification(models.Model):
    message = models.TextField()

class UserNotification(models.Model):
    user = models.ForeignKey(User)
    notification = models.ForeignKey(Notification)
    is_seen = models.BooleanField()

相关问题