2017-09-28 4 views
0

Je travaille sur une application de messagerie simple en utilisant Django. voici un problème que j'ai rencontré.
Je souhaite que les utilisateurs puissent envoyer un message à un groupe d'autres utilisateurs. Je souhaite également afficher les derniers messages envoyés et reçus pour chaque utilisateur. Le problème est lorsque vous envoyez un message à beaucoup de gens. vos messages L'interface sera remplie avec le même message (un pour chaque récepteur). Ce que je veux faire est d'avoir la même interface utilisateur que la messagerie de groupe dans les smartphones, ce qui signifie que tous les messages d'un groupe s'afficheront à moins que quelqu'un ne réponde au message, auquel cas une nouvelle conversation sera affichée. Je ne veux pas créer un nouveau modèle (classe) pour les messages de groupe et il serait inefficace de gérer cela au niveau frontal. Y at-il un motif de conception qui m'aide à faire cela? comment puis-je faire cela sans itération sur tous les messages et trouver ceux qui appartiennent au même groupe? merci d'avance.modèle de conception pour masquer un groupe d'objets en tant qu'un

ce que j'ai maintenant:

  • message pour personne 1: salut
  • message pour personne 2: Salut
  • un message
  • pour personne 3: salut
  • message pour personne 4: salut
  • message pour personne 5: salut | Message de la personne 5: bonjour
  • message pour personne 6: salut

ce que je veux:

    un message
  • pour personne 1,2,3,4,6: salut
  • message pour personne 5: salut | message de la personne 5: bonjour
+0

Montrez-nous votre code existant. –

Répondre

0

Je n'ai pas été capable de trouver des réponses faciles pour cela mais j'ai réussi à le faire.
ce que j'ai fait était de faire une liste de messages liés. chaque fois que quelqu'un envoie un message à un groupe de personnes, je crée un message qui a un lien vers le message suivant et ainsi de suite. Si l'un des destinataires répond en retour, je retire le message pour lui/elle de la liste chaînée et l'insère dans la base de données en tant que message séparé.