Mam te dwie klasy dla modułu wiadomości, nad którym pracuję. Chodzi o to, że rozmowę reprezentuje grupa uczestników (dwóch lub więcej). Staram się znaleźć sposób na wytropienie rozmowy za pomocą logiki, która mówi, że pożądana rozmowa, którą próbuję znaleźć, ma następujących uczestników. Próbowałem wykonać próbkę w stylu OR, p1 jest uczestnikiem lub p2 jest uczestnikiem. Chcę, aby p1 i p2 oraz ... pN był uczestnikiem. Jakaś pomoc tam jest?Django M2M QuerySet filtrowanie wielu kluczy obcych
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
Aktualna najlepsza odpowiedź, po prostu brakuje dydaktycznego wprowadzenia do przykutych filtrów w tej samej relacji M2M: -) – vincent
Podoba mi się to, wydaje się, że to właściwy sposób, aby to zrobić, a nie zhakowane rozwiązanie. Dzięki! – Mike