Чат сообщения.

Создаем новую модель под сообщения и миграцию.

Каждое сообщение будет содержать токен комнаты для упрощения поиска всех сообщений в комнате по токену.

Поэтому при сохранении нового объекта сообщения мы выбираем токен из комнаты и заполняем им свойство token объекта сообщения.

admin

Установим django-filter. С ним на много проще производить поиск в отображении.

Добавим бекенд в настройки DRF settings.py.

class ChatMessage(models.Model):
    token = models.CharField(max_length=250,  default='', db_index=True)
    user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
    room = models.ForeignKey(ChatRoom, on_delete=models.CASCADE)
    message =  models.TextField(default='')
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    is_readed = models.BooleanField(default=False)

    def save(self, *args, **kwargs):
        if not self.pk:
           self.token = self.room.token
        super(ChatMessage, self).save(*args, **kwargs)
django-filter==2.2.0
admin
Потратить 2 кредита и начать обучение!
Задать вопрос, прокомментировать.