У нас есть система уведомлений (образец приведен ниже), и каждый раз, когда сайт должен уведомить любого пользователя о чем-либо, он создает уведомление. Теперь мы хотим показать, что на каждом сайте (мы используем глобальный шаблон) счетчик непрочитанных сообщений без изменения каждого представления для доставки его в шаблон. Есть ли способ сделать это правильно?
class Notification(models.Model):
n_id = models.AutoField(primary_key=True)
n_body = models.CharField(max_length=1000, null=True)
n_recipient = models.ForeignKey(User, related_name='Recipient', on_delete=models.CASCADE)
n_read_status = models.BooleanField(default=False)
Наш запрос будет Notification.objects.filter(n_recipient=request.user, n_read_status=False).count()
, но мы не хотим вызывать его в каждом представлении вручную.