在 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)
目前我有一个像这样的序列化程序文件:
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)