Код контекстного процессора Django не работает
Я пытаюсь использовать context_processors.py для отображения количества непрочитанных сообщений на иконке сообщения base.html, но по какой-то причине это не работает.
В то время как счетчик непрочитанных сообщений работает для user_messages_view правильно, он просто не работает для base.html. Я попробовал изменить логику моего context_processors.py, но результат тот же.
Итак, мой models.py:
class Message(models.Model):
sender = models.ForeignKey(CustomUser, related_name='sent_messages', on_delete=models.CASCADE)
recipient = models.ForeignKey(CustomUser, related_name='received_messages', on_delete=models.CASCADE)
business = models.ForeignKey(Business, related_name='messages', on_delete=models.CASCADE, null=True)
content = models.TextField()
timestamp = models.DateTimeField(auto_now_add=True)
is_read = models.BooleanField(default=False)
def __str__(self):
return f'Message from {self.sender} to {self.recipient} in {self.business}'
@property
def sender_is_business(self):
return self.sender.business.exists()
@property
def recipient_is_business(self):
return self.recipient.business.exists()
Мой views.py:
Мой user_messages.html:
Мой context_processors.py:
def unread_message_count(request):
if request.user.is_authenticated:
unread_count = Message.objects.filter(recipient=request.user, is_read=False).count()
else:
unread_count = 0
return {
'unread_message_count': unread_count,
}
Мой settings.py:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'business.context_processors.unread_message_count',
],
},
},
]
Мой base.html:
<a href="{% url "user_messages" %}">
<div class="max-md:hidden wishlist-icon flex items-center relative cursor-pointer">
<i class="ph-bold ph-chats text-2xl"></i>
<span class="quantity wishlist-quantity absolute -right-1.5 -top-1.5 text-xs text-white bg-black w-4 h-4 flex items-center justify-center rounded-full">{{ unread_message_count }}</span>
</div>
</a>
Все остальные счетчики контекстного процессора работают, кроме этого. По моему мнению, логика работы счетчика непрочитанных_сообщений кажется нормальной. Я не могу понять, почему это не работает.