我正在尝试创建一个中间件Web应用程序,允许用户控制我们服务器上的某些服务。为此,我在Django中创建了几个模型,用于跟踪服务器的当前状态,或者哪些输入对任何给定服务有效的列表。
API需要能够:
我不需要进一步访问数据 - 模型细节的任何更改都将由超级用户通过Django管理界面完成,因为只有在软件配置发生变化时才会更改。
到目前为止,我发现的所有DRF文档都假定API将用于创建和更新模型数据 - 如何使用DRF进行GET调用和自定义操作?或者我应该放弃DRF并只使用普通的Django,返回JSON而不是HTML?
编辑:我已经意识到我的困惑来自哪里;我误解了序列化程序与视图集的目的/功能。序列化程序将始终具有create + update方法,因为它们将传入的数据转换为模型对象。视图集确定可以对该对象执行的操作,以便启用不同的访问方法。
答案 0 :(得分:2)
如果您使用ModelViewSet
,则可以使用http_method_names
类变量。
class MyModelViewSet(viewsets.ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
http_method_names = ['get']
答案 1 :(得分:2)
您可以尝试使用readonlymodelviewset,例如来自文档
class AccountViewSet(viewsets.ReadOnlyModelViewSet):
"""
A simple ViewSet for viewing accounts.
"""
queryset = Account.objects.all()
serializer_class = AccountSerializer