当前位置: 首页 > 面试题库 >

在Django Rest框架上覆盖JSONSerializer

朱越
2023-03-14
问题内容

我正在尝试在我的django rest框架上应用此修复程序 将根元素添加到json响应(django-rest-
framework)

但是我不确定如何在django rest框架上覆盖json序列化程序,任何帮助都将是很大的。

最终结果将是在Json上具有根节点名称,因为现在它只是一个没有根名称的对象数组,即

不是这样的

[{“ foo”:“ bar”}]

我需要像这样

{“ element”:[{“ foo”:“ bar”}]}

使它与Ember JS一起使用

谢谢


问题答案:

我想您已经在给出的​​帖子中找到了答案。

您需要定义自定义JSON渲染器

from rest_framework.renderers import JSONRenderer

class EmberJSONRenderer(JSONRenderer):

    def render(self, data, accepted_media_type=None, renderer_context=None):
        data = {'element': data}
        return super(EmberJSONRenderer, self).render(data, accepted_media_type, renderer_context)

并将其用作设置中的默认渲染器或供您查看的显式定义的渲染器,例如:

class MyView(APIView):
    renderer_classes = (EmberJSONRenderer, )
    # ...


 类似资料:
  • 当我要求一个图像http://127.0.0.1:8000/api/images/1/或者传入参数进行裁剪http://127.0.0.1:8000/api/images/1/?height=320 我得到的答复是: 而在http://127.0.0.1:8000/api/images/ 答复是: 为什么缩略图不容易返回主机名,我如何将基本网址追加到响应中? 以下是我的看法。派克

  • 我有2个实体类(表A的实体和表B的实体)。表 A 链接到表 B。因此,实体类具有 B 实体的对象列表,并声明如下图所示。 @OneToMany(mappedBy=“AEntity”,cascade=CascadeType.REMOVE,fetch=FetchType.LAZY)private List items=new ArrayList(); 如果我使用“entityManager.remov

  • 我正在实现一个基于ASP MVC 5和Entity Framework 6的Web应用程序。解决方案是按区域组织的(目前只有一个区域…)每个区域都有自己的DBContext。请参见解决方案图。 在DBContext中,我定义了一个在运行时分配给上下文的连接字符串名称,因为它依赖于登录变量。 当我尝试添加迁移或从控制台更新数据库时,即使我显式指定了连接字符串(并且连接字符串存在于主web.confi

  • 我想我会在这里问这个问题,因为我不太确定我会错在哪里。我正在尝试使用Django Rest框架类通过AJAX执行POST请求。但是,每当事件触发时,我都会收到以下错误: 这是堆栈跟踪中显示的内容: 上下文 我试图做到这一点,当用户单击“添加到列表”按钮时,它会向用户定义的列表发送一个cafeName(以及最终的其他详细信息)。 我想知道是否有人可以看看我的代码,并给我一些指导,我哪里出了问题? 代

  • 我有两个div互相覆盖。我只想从覆盖区域删除边框。请看下面的示例代码 此代码将输出为: 但我希望输出为: 我怎样才能做到这一点呢?请帮帮忙。 注意:我正在使用下拉菜单。第一个div实际上用于菜单名称,第二个div用于菜单列表。

  • 问题内容: 如何在youtube iframe嵌入式视频上叠加具有半透明不透明度的div? 的CSS 编辑(增加了更多说明): HTML5正在接近我们,越来越多的设备使用它而不是Flash,这使youtube视频的嵌入变得复杂,幸运的是,youtube提供了一种特殊的可嵌入iFrame,可以处理所有视频嵌入兼容性问题,但是现在,以前使用半透明div覆盖视频对象的方法不再有效,我现在无法向该对象添加