3

これまで、ユーザーにメッセージを送信するモデルがありました。ユーザーに送信されたすべてのメッセージまたはユーザーが受信したメッセージを確認できます。しかし、特定のユーザーのすべてのメッセージ (送信/受信) を取得するにはどうすればよいですか? モデルの設計が間違っている場合は、修正してください。ありがとうございました。

model.py:

class Message(models.Model):
    description = models.TextField()
    date_added = models.DateTimeField(default=datetime.now)
    sender = models.ForeignKey(User, related_name='sent_set')
    recipient = models.ForeignKey(User, related_name='recieved_set')

    def __unicode__(self):
        return "%s sent message: %s to %s" % (self.sender, self.description, self.recipient)

    def save(self, **kwargs):
        if self.sender == self.recipient:
            raise ValueError("Cannot message yourself")
        super(Message, self).save(**kwargs)
4

1 に答える 1

2
from django.db.models import Q
user = request.user #or something else
Message.objects.filter(Q(sender=user)|Q(recipient=user))

https://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objectsを読む必要があります

于 2013-08-16T17:50:33.723 に答える