Функциональность обмена сообщениями в папке входящих сообщений Django не работает
Итак, я пытаюсь добавить функцию обмена сообщениями на свой сайт электронной коммерции, где покупатели могут отправлять сообщения продавцам, а продавцы могут отправлять сообщения покупателям, когда покупатель что-то у них купил (я еще не написал код для этого, просто хочу, чтобы базовая функциональность обмена сообщениями была убрана с дороги). Вот что я пробовал.
Итак, что касается моих представлений, у меня есть два представления. С помощью представления message_seller
я могу напрямую написать сообщение конкретному продавцу, при этом я попадаю в папку входящих сообщений этого продавца, а представление user_messages_view
представляет собой папку входящих сообщений этого пользователя, отправленных и полученных, и пользователь может выбрать сообщение, чтобы открыть разговор.
Я могу отправлять сообщения другим пользователям, но с этим есть одна проблема. Когда пользователь получает сообщение, инициированное другим пользователем, в папке "Входящие" отображается некорректная самооговорка, а не само сообщение. Хотя счетчик непрочитанных сообщений правильно показывает количество непрочитанных сообщений для этого пользователя.
Может ли кто-нибудь помочь мне решить эту проблему? Заранее спасибо!
Мой models.py:
class Business(models.Model):
BUSINESS_TYPE_CHOICES = [
('product', 'Product Business'),
('service', 'Service Business'),
]
seller = models.OneToOneField(CustomUser, on_delete=models.CASCADE, related_name='business')
business_name = models.CharField(max_length=100)
description = models.TextField()
business_slug = models.SlugField(unique=True, blank=True)
business_type = models.CharField(max_length=20, choices=BUSINESS_TYPE_CHOICES)
countries = models.ManyToManyField(Country)
states = models.ManyToManyField(State)
address = models.CharField(max_length=200)
phone = models.CharField(max_length=20)
website = models.URLField(blank=True, null=True)
email = models.EmailField(blank=True, null=True)
profile_picture = models.ImageField(upload_to='business_profiles/', blank=True, null=True)
banner_image = models.ImageField(upload_to='business_banners/', blank=True, null=True)
is_featured = models.BooleanField(default=False)
def __str__(self):
return self.business_name
def save(self, *args, **kwargs):
if not self.business_slug:
self.business_slug = slugify(self.business_name)
super().save(*args, **kwargs)
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}'
Мой views.py:
Мой urls.py:
urlpatterns = [
path('message/<slug:business_slug>/', views.message_seller, name='message_seller'),
path('messages/', views.user_messages_view, name='user_messages'),
path('messages/<slug:business_slug>/', views.user_messages_view, name='user_messages_with_slug'),
]
Мое сообщение.html:
Мой user_messages.html: