在 Django Rest Framework 上获取外部序列化的 ReadOnlyField

Get foreign serialized ReadOnlyField on Django Rest Framework

目前我有一个像这样的序列化程序文件:

class BotSerializer(serializers.ModelSerializer):

    class Meta:
        model = Bot
        fields = ['id', 'bot_name', 'comment', 'bot_activities']
        depth = 1


class BotActivitySerializer(serializers.ModelSerializer):
    bot_name = serializers.ReadOnlyField(source='bot.bot_name', read_only=True)
    started_date_activity = serializers.DateTimeField(source='started_at', format="%m/%d/%Y %H:%M:%S", required=False, read_only=True)
    finished_date_activity = serializers.DateTimeField(source='finished_at', format="%m/%d/%Y %H:%M:%S", required=False, read_only=True)

    class Meta:
        model = BotActivity
        fields = ['started_at', 'started_date_activity', 'finished_at', 'finished_date_activity', 'bot', 'bot_name', 'bot_activity_status']

当我调用 Bot seriliazer 时,我得到:

{
    "id": 1,
    "bot_name": "HTTP header checker",
    "comment": "testtest",
    "bot_activities": [
        {
            "id": 1,
            "started_at": "2020-11-04T15:47:26.168212Z",
            "finished_at": null,
            "bot_activity_status": "In Progress",
            "bot": 1
        }
    ]
}

但我还需要获取 started_date_activity 和 finished_date_activity 字段。 怎样做才能获得它们的价值? 谢谢

我终于找到了解决方案:

class BotSerializer(serializers.ModelSerializer):
    bot_activities = BotActivitySerializer(read_only=True, many=True)