如何使用 Django REST Framework 更改 OPTIONS 返回的 json 中返回的字段元数据类型?

How can I change the returned field metadata type in the json returned by OPTIONS using the Django REST Framework?

我目前正在编写一个自动化脚本,以从我试图连接到 swift 的 Django 端点模型中提取元数据类型。

上一个关于堆栈交换的问题解释了如何使用 OPTIONS 字段从我的模型中提取元数据;然而,我 运行 遇到了一个问题,即并非所有返回的字段都是详细的。特别是,外键字段没有指定正确的元数据类型。

例如,

"created_by_merchant": {
"type": "field",
"required": false,
"read_only": true,
"label": "Created by merchant"
}

"item_size_selection": {
"type": "field",
"required": false,
"read_only": false,
"label": "Item size selection"
}

都是外键。商家创建的应该是一个整数,item_size_selection应该是一个charfield。有什么方法可以在我的选项中指定特定字段的类型吗?

找到了解决该问题的方法。在序列化器中,可以使用 source 将外键指定为其特定的序列化器字段。

这是一个例子:

created_by_merchant = serializers.IntegerField(source='created_by_merchant_id', read_only=True)

不知道为什么我需要再次添加 read_only 字段,即使它在元 class 中指定,但它需要在那里匹配才能以只读方式工作。