【问题标题】:Nested Serializer in Django Rest Framework APIDjango Rest Framework API 中的嵌套序列化程序
【发布时间】:2014-08-20 15:04:27
【问题描述】:

我在 Django 中使用 Rest Framework。我使用可浏览的 API 功能根据给定 API 的序列化程序自动生成表单(用于 http POST、PUT 等)。

我的问题是我现在正在创建一个带有嵌套序列化程序的 API,以接收已知格式的字典列表。主序列化器中嵌套序列化器的声明是:

customer_hosts = CustomerNetworkHostSerializer(many=True, required=True)

我的 API 继承了泛型的 CreateAPIView 表单 rest_framework。我还将 serializer_class 设置为我的主序列化程序。

如果我使用 http post 手动发送所需的 json 对象,API 可以与序列化程序一起正常工作,但我无法使用具有自动生成表单的浏览器发送该变量的值。带有嵌套序列化程序的变量根本不显示。

那么,如果可能的话,我正在寻找的是让 browsable_api 与嵌套的动态序列化程序一起工作?

【问题讨论】:

    标签: python django python-2.7 django-rest-framework


    【解决方案1】:

    我找不到确切的 RFC 参考,但这里的限制是 HTTP。 HTTP 表单无法原生编码嵌套数据结构(application/x-www-form-urlencoded 和 multipart/form-data 都依赖平面键值格式)

    这里的一种方法可能是创建一个页面,该页面使用 browsableapi 渲染器来渲染表单中可能的那些部分,然后实现您自己的逻辑以
    - 渲染嵌套的序列化器
    - 将表单和内容格式化为其他语言以提交到您的端点(例如,将 html 表单和内容转换为 json:Convert form data to JavaScript object with jQuery

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 2014-12-21
      相关资源
      最近更新 更多