我正尝试在Django的网站上实现一个通知页面,但我遇到了一个问题,那就是如何向多个用户发送相同的通知。假设我只需要将它发送给一个用户,那么我就可以创建一个通知模型
noti = models.TextField() user= models.foreignkey is_seen = models.bool
所以这只是一个示例,但问题是我如何将此通知发送给选定的多个用户重要的一点是is_seen对于每个用户都是强制的我希望你能理解
tpgth1q71#
我认为这取决于这些数据将来如何增长,因为如果您的所有通知都发送给多个用户,那么您可以有一个Notification模型,其中User与ManyToMany有关系。
Notification
User
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()
1条答案
按热度按时间tpgth1q71#
我认为这取决于这些数据将来如何增长,因为如果您的所有通知都发送给多个用户,那么您可以有一个
Notification
模型,其中User
与ManyToMany有关系。但另一个问题是,如果你想建立类似于你分享的东西,那也没问题。我不认为这是一个为多个用户添加相同消息的问题。在我看来,这比M2M关系更灵活。随着应用程序的增长,你可以在未来轻松地扩展这一点。
另一种情况是,如果你想要有更多的关系,如果需要添加更多的与通知相关的信息,这就为将来在存储信息方面提供了更大的改进空间。