【问题标题】:Can I drop Serializers from DRF completely?我可以完全从 DRF 中删除序列化程序吗?
【发布时间】:2016-09-15 05:54:02
【问题描述】:

我正在尝试将 Django REST Framework 与 MongoDB 一起使用。

我尝试将 Mongoengine 与 Django-REST-Framework-Mongoengine 一起使用,但它不起作用(或者我做错了什么,但缺少文档,所以我不知道如何正确操作)。

现在我正在尝试完全摆脱 Mongoengine 层,直接使用 PyMongo。

本质上,要在经典 Django REST 框架中创建每个端点,您需要一个三元组:

(ViewSet, Serializer, Model)

使用 PyMongo,我将完全删除 Model 层。问题是:我必须保持Serialier 级别吗?我可以创建一个没有SerializerViewSet 并让Browsable API 工作吗?对我来说,Django REST Framework 的杀手级功能是 Browsable API 和请求 Parsers

Browsable API 是否绝对需要Serializer

【问题讨论】:

  • 我建议您使用Mongoengine 层而不是Pymongo。也许你应该添加你在 DRF-MongoEngine 中尝试的代码,但它不起作用。
  • @RahulGupta 我愿意。我在他们的 github 上将该代码报告为一个错误:github.com/umutbozkurt/django-rest-framework-mongoengine/issues/…,实际上找到了一种解决方法来让它工作(虽然失去了一些验证)。但是想一想,整个 mongoengine 只是 mongo 的 django 模型的复制,你不需要 - pymongo 查询语言并不比 django 查询语言差。

标签: django-rest-framework


【解决方案1】:

如果您想保留 Browsable API,则需要一个序列化程序。 您可以不使用序列化程序,但您会失去该功能 - 尽管 json 或表单仍在工作。

如果有帮助的话,我写了一些关于use of Django REST framework without models 的内容。

【讨论】:

  • 谢谢,泽维尔。所以,我可以不用序列化程序,我只是在 Browsable API 中松散表单。
  • Xavier,如果不麻烦你,能不能也看看这个问题,我真的卡在那里了:stackoverflow.com/questions/37275270/…
  • 鲍勃,你可能想看看汤姆克里斯蒂的this post。它提供了一些关于如何使用 DRF 解耦事物的想法。
  • 我看了你的另一个问题,Rahul Gupta 的回答是正确的。
猜你喜欢
  • 1970-01-01
  • 2023-01-25
  • 1970-01-01
  • 2012-07-31
  • 2018-06-21
  • 1970-01-01
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多