如何序列化类对象的特定字段数组(getStream)

问题描述 投票:1回答:1

我正在努力将qazxsw poi数据推向qazxsw poi。我正在使用EnrichedActivity获取数据

FeedSerializer

这是来自getStream的数组数据

class FeedAPIView(APIView):
    def get(self, request, format=None):
        feeds = feed_manager.get_news_feeds(request.user.id)
        # get the newsfeed for user.
        activities = feeds.get('timeline').get()['results']
        activities = enricher.enrich_activities(activities)
        # I want to serialize only Outfit instances(object) from the activities.
        filtered_set = FeedSerializer(activities.getObject.convertToQueryset)
        json_output = { "feed" : filtered_list }
        return Response(json_output, status=status.HTTP_200_OK)

我想从上面的数组中获取此查询集,

activities

将queryset放入FeedSerializer。

[
    EnrichedActivity(
        activity_data={
            'target': None, 'verb': 'outfit', 'actor': <User: georgiamason522>, 
            'to': [], 'foreign_id': 'outfit.Outfit:23',
            'id': 'x7x7bxxxxxxxxxxx3xbxx', 
            'object': <Outfit: georgiamason522 23>, // Data
            'time': datetime.datetime(2017, 12, 14, 1, 36, 6, 833617), 'origin': 'user:17'}, 
            not_enriched_data={}), 
    EnrichedActivity(..., 'object': <Outfit: georgiamason522 22>,
]

我的问题是......

  1. EnrichedActivity数据看起来像是类对象。我们如何只提取filtered_set = ??? print(filtered_set) <QuerySet [<Outfit: georgiamason522 23>, <Outfit: georgiamason522 22>]> > FeedSerializer(filtered_set, many=True, context={'request': self.context['request']}).data
  2. 将提取的activity_data数据转换为Queryset

这是伪代码,可以是正确的。

object

如果有任何不清楚或需要更多信息,请在下面评论。

UPDATE

object

装备模型//你可以把它想象成普通的帖子

# This is Pseudo Code in my mind! This is not correct or can be not even close
filtered_set = [activity.activity_data.object].getQueryset for activity in activities
python django-rest-framework getstream-io
1个回答
1
投票

这是我的解决方案。感谢... @DwightGunning

class FeedSerializer(serializers.ModelSerializer):
    comments = serializers.SerializerMethodField()
    ...
    is_owner = serializers.SerializerMethodField()

    class Meta:
        model = Outfit # I want to serialize Outfit Model instance 
                       # from feed in enriched list

    ...
© www.soinside.com 2019 - 2024. All rights reserved.