如何为 drf 的未指定键创建序列化程序用于 drf-yasg

问题描述

我想序列化/反序列化一个没有固定键的对象。

我知道有用于此目的的 DictField。

但是,由于这是一个字段,而不是序列化程序,我需要一个将 dictfield 包装为根对象键的序列化程序。

这意味着,使用 DictField,我可以接受对象,

{
    'some_field_name_for_dictfield': {
        'unkNown_key1': 'value1','unkNown_key2': 'value2','unkNown_key3': 'value3',...
    }
}

但仍然无法处理对象,

{
    'unkNown_key1': 'value1',}

当然,简单地使用 json.loads(request.data) 工作正常,但我没有生成正确的架构。

然而,我想要的是,

  1. 使用序列化器
  2. 将其分配为 serializer_class
  3. 使用 drf-yasg 自动创建 swagger 文档

一种可能的解决方法是,手动将 swagger_auto_schema 装饰器的 request_body 参数设置为手动 openapi 格式规范。但这对我来说是最不利的选择。

总而言之,我想对未指定的键使用序列化程序,以便为 drf-yasg 正确生成架构。为了实现这一点,我应该几乎完全重写 drf 的序列化程序类吗?或者有一个简单的方法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)