Ich habe diese beiden Klassen für ein Messaging-Modul, an dem ich arbeite. Die Idee ist, dass eine Unterhaltung durch eine Gruppe von Teilnehmern (zwei oder mehr) dargestellt wird. Ich kämpfe damit, eine Möglichkeit zu finden, eine Konversation nach der Logik zu suchen, die besagt, dass die gewünschte Konversation, die ich zu finden versuche, die folgenden Teilnehmer hat. Ich habe versucht Conversation.objects.filter(participants__in=[p1, p2])
Dies ist jedoch eine ODER-ähnliche Abfrage: p1 ist ein Teilnehmer oder p2 ist ein Teilnehmer. Ich möchte p1 und p2 und ... pN ist ein Teilnehmer. Kann mir da jemand helfen?
class Conversation(models.Model):
date_started = models.DateTimeField(auto_now_add=True)
participants = models.ManyToManyField(User)
def get_messages(self):
return Message.objects.filter(conversation=self)
def new_message(self, sender, body):
Message.objects.create(sender=sender, body=body, conversation=self)
self.save()
class Message(models.Model):
sender = models.ForeignKey(User)
body = models.TextField()
date = models.DateTimeField(auto_now_add=True)
conversation = models.ForeignKey(Conversation)
def __unicodde__(self):
return body + "-" + sender