Wystarczy nie zapisywać id użytkownika do bazy.
Wymaga to kilku zmian w kodzie, ponieważ sender jest obecnie używany w kilku miejscach:
Główne problemy:
- consumers.py linia 317: msg = Message(sender=user, ...) - trzeba zmienić na sender=user if not is_anonymous else None
- consumers.py linia 325-334: participated_only używa user.id do śledzenia roomów - trzeba obsłużyć None
- consumers.py linia 363: other_members = [m for m in room_members if m.id != sender.id] - trzeba obsłużyć None sender.id
- views.py linia 139: Message.objects.filter(sender=request.user) - to zostaje bez zmian (sender=request.user nigdy nie jest None)
- services.py linia 165: room.messages.filter(sender=self.user) - to też zostaje bez zmian
Kod już częściowo obsługuje None sendera:
- utils.py już ma obsługę None (linie 211, 246)
- services.py już ma obsługę None (linie 364, 448, 475)
Podsumowanie: Technicznie możliwe, ale wymaga modyfikacji w send_message_to_room w consumers.py, aby:
- Ustawiać sender=None gdy is_anonymous=True
- Pomijać participated_only logikę gdy sender jest None
- Poprawnie obsługiwać other_members gdy sender.id jest None
Wystarczy nie zapisywać id użytkownika do bazy.
Wymaga to kilku zmian w kodzie, ponieważ sender jest obecnie używany w kilku miejscach:
Główne problemy:
Kod już częściowo obsługuje None sendera:
Podsumowanie: Technicznie możliwe, ale wymaga modyfikacji w send_message_to_room w consumers.py, aby: