【问题标题】:Adding forms to Django Rest Framework ViewSets将表单添加到 Django Rest Framework ViewSets
【发布时间】:2014-08-27 12:21:19
【问题描述】:

我创建了一些直接从viewsets.ViewSet 子类化而不是从ModelViewSet 子类化的视图,其中许多(但不是全部)没有在类上明确声明序列化程序,因为我不需要它们.此类视图集的一个示例是“验证电子邮件”视图集,它仅接收验证码,然后 ViewSet 上的.list() 方法查找验证码并验证用户。不需要序列化程序或模型,我只使用ViewSet,以便可以在路由器中正确注册视图。

但是,这些视图都缺少 ModelViewSet 页面通常用于 POST 和 PUT 请求的 Browseable API 页面底部自动生成的表单。

我需要做什么或指定什么才能让这些表单与我的这些ViewSet 子类的首选字段一起显示?

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    您需要有视图集的序列化程序。

    BrowsableAPIRenderer 在它的get_context 方法中返回:

    'put_form': self.get_rendered_html_form(data, view, 'PUT', request),
    'post_form': self.get_rendered_html_form(data, view, 'POST', request),
    

    get_rendered_html_form 正在寻找为视图定义的序列化程序。

    这是有道理的,因为如果没有序列化程序,您将无法处理 POSTPUT 发送的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-19
      • 2017-05-28
      • 2019-01-31
      • 2016-08-01
      • 2015-11-08
      • 2013-01-27
      • 2017-01-05
      • 1970-01-01
      相关资源
      最近更新 更多