对于我正在处理的消息传递模块,我有这两个类。这个想法是对话由一组参与者(两个或更多)表示。我正在努力寻找一种通过逻辑查找对话的方法,即我试图找到的所需对话具有以下参与者。但是,我尝试Conversation.objects.filter(participants__in=[p1, p2])
了 OR 样式查询,p1 是参与者或 p2 是参与者。我想要 p1 和 p2 并且... pN 是参与者。有什么帮助吗?
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