django - 你能在 DRF ModelViewSet 中获取请求方法吗?
问题描述
我正在构建一个使用 Django Rest Framework 的 Django 聊天应用程序。我创建了一个扩展 ModelViewSet 以显示所有消息对象的 MessageViewSet:
class MessageViewSet(ModelViewSet):
queryset = Message.objects.all()
serializer_class = MessageSerializer
这个聊天应用程序也使用 Channels,当用户发送 POST 请求时,我想做一些与频道相关的事情,但我找不到查看发出哪种请求的方法。有什么方法可以访问 ModelViewSet 中的请求方法吗?
解决方案
Rest Frameworkviewsets
将 http 方法:GET
、PUT
、POST
和映射到分别DELETE
名为list
、update
、create
和的查看方法destroy
;因此,在您的情况下,您需要覆盖该create
方法:
class MessageViewSet(ModelViewSet):
queryset = Message.objects.all()
serializer_class = MessageSerializer
def create(self, request):
print('this is a post request', request)
...
推荐阅读
- api - 如何建模编辑批准的资源以在 REST API 中创建草稿资源
- docker - 成功安装 Docker 后 VirtualBox 未启动
- java - 如何让程序创建玩家指定的士兵数量?
- reactjs - 从 useState 解构的变量在 return 语句上方是否不可用?
- mongodb - 使用 mongoose express 更新哈希密码
- php - 如何使用文件存储符号链接显示用户头像?
- python - 在 Python 中按位置漫游数组
- ios - 使滑动视图保持在背景视图的边界内
- bash - 使用从脚本调用的 vim 编辑 visudo
- javascript - 添加链接阅读更多到文本恢复属于给定数据库