我正在尝试创建一个中间件Web应用程序,允许用户控制我们服务器上的某些服务 . 为此,我在Django中创建了几个模型,用于跟踪服务器的当前状态,或者哪些输入对任何给定服务有效的列表 .
API需要能够:
-
列出模型的所有实例
-
显示模型的一个实例的详细信息
-
接受JSON转换为软件说明(即"This list of outputs should source from this input")
我不需要进一步访问数据 - 模型细节的任何更改都将由超级用户通过Django管理界面完成,因为只有在软件配置发生变化时才会更改 .
到目前为止,我发现的所有DRF文档都假定API将用于创建和更新模型数据 - 如何使用DRF进行GET调用和自定义操作?或者我应该放弃DRF并只使用普通的Django,返回JSON而不是HTML?
编辑:我意识到我的困惑来自哪里;我误解了序列化程序与视图集的目的/功能 . 序列化程序将始终创建更新方法,因为它们将传入的数据转换为模型对象 . 视图集决定了该对象可以执行的操作,因此您可以在其中启用不同的访问方法 .
2 回答
如果您使用
ModelViewSet
,则可以使用http_method_names
类变量 .您可以尝试使用readonlymodelviewset,例如来自docs