Python 如何在两个用户之间获取最后一条消息?

Python 如何在两个用户之间获取最后一条消息?,python,django,python-2.7,django-rest-framework,Python,Django,Python 2.7,Django Rest Framework,我试图在收件箱页面中显示两个用户之间的最后一条消息。 但是我在选择与主用户(登录用户)联系的所有用户时遇到一些问题 这是我的型号.py: class Message(models.Model): """ Model for user messages. - Who - Whom - When - Message - Status """ user_sender = models.ForeignKey(User, relate

我试图在收件箱页面中显示两个用户之间的最后一条消息。 但是我在选择与主用户(登录用户)联系的所有用户时遇到一些问题

这是我的
型号.py

class Message(models.Model):
    """
    Model for user messages.
    - Who
    - Whom
    - When
    - Message
    - Status
    """
    user_sender = models.ForeignKey(User, related_name="sender")
    user_receiver = models.ForeignKey(User, related_name="receiver")
    send_date = models.DateTimeField(auto_now_add=True)
    message = models.CharField(max_length=500)
    status = models.BooleanField(default=False)

    def __unicode__(self):
        return u'%s %s ->%s' % (self.send_date, self.user_sender, self.user_receiver)
class MessagePreviewSerializer(serializers.ModelSerializer):
    info = UserProfileSerializer(many=True, read_only=True)
    last_message = serializers.SerializerMethodField('message_preview')

    def message_preview(self, obj):
        user_id = self.context.get("user_id")
        # getting last message between user_id and obj.id
        return last_msg

    class Meta:
        model = User
        fields = ('id', 'username', 'first_name', 'last_name', 'email', 'info', 'last_message')
contacts = Message.objects.filter(Q(user_sender_id=token.user_id) |
                                       Q(user_receiver_id=token.user_id)).values('user_receiver_id')
serializer = MessagePreviewSerializer(contacts, context={'user_id': token.user_id}, many=True)
这是我的
序列化程序.py

class Message(models.Model):
    """
    Model for user messages.
    - Who
    - Whom
    - When
    - Message
    - Status
    """
    user_sender = models.ForeignKey(User, related_name="sender")
    user_receiver = models.ForeignKey(User, related_name="receiver")
    send_date = models.DateTimeField(auto_now_add=True)
    message = models.CharField(max_length=500)
    status = models.BooleanField(default=False)

    def __unicode__(self):
        return u'%s %s ->%s' % (self.send_date, self.user_sender, self.user_receiver)
class MessagePreviewSerializer(serializers.ModelSerializer):
    info = UserProfileSerializer(many=True, read_only=True)
    last_message = serializers.SerializerMethodField('message_preview')

    def message_preview(self, obj):
        user_id = self.context.get("user_id")
        # getting last message between user_id and obj.id
        return last_msg

    class Meta:
        model = User
        fields = ('id', 'username', 'first_name', 'last_name', 'email', 'info', 'last_message')
contacts = Message.objects.filter(Q(user_sender_id=token.user_id) |
                                       Q(user_receiver_id=token.user_id)).values('user_receiver_id')
serializer = MessagePreviewSerializer(contacts, context={'user_id': token.user_id}, many=True)
我在我的
视图.py中有这个:

class Message(models.Model):
    """
    Model for user messages.
    - Who
    - Whom
    - When
    - Message
    - Status
    """
    user_sender = models.ForeignKey(User, related_name="sender")
    user_receiver = models.ForeignKey(User, related_name="receiver")
    send_date = models.DateTimeField(auto_now_add=True)
    message = models.CharField(max_length=500)
    status = models.BooleanField(default=False)

    def __unicode__(self):
        return u'%s %s ->%s' % (self.send_date, self.user_sender, self.user_receiver)
class MessagePreviewSerializer(serializers.ModelSerializer):
    info = UserProfileSerializer(many=True, read_only=True)
    last_message = serializers.SerializerMethodField('message_preview')

    def message_preview(self, obj):
        user_id = self.context.get("user_id")
        # getting last message between user_id and obj.id
        return last_msg

    class Meta:
        model = User
        fields = ('id', 'username', 'first_name', 'last_name', 'email', 'info', 'last_message')
contacts = Message.objects.filter(Q(user_sender_id=token.user_id) |
                                       Q(user_receiver_id=token.user_id)).values('user_receiver_id')
serializer = MessagePreviewSerializer(contacts, context={'user_id': token.user_id}, many=True)
因此,我的主要问题是获取用户列表,这些用户是带有
标记的“联系人”(有消息)。用户id
,然后调用
序列化程序
,在他们之间获取
lastmsg
,并将其序列化

是真的吗?如果是,我的代码有什么问题