为了账号安全,请及时绑定邮箱和手机立即绑定

如何在django频道休息框架中订阅模型的所有实例?

如何在django频道休息框架中订阅模型的所有实例?

慕森王 2023-08-08 16:17:12
我想将 API 的行为更改为 JSON 触发(从浏览器调用),但由于我对 Python 的了解有限,我什至无法从 Python 客户端调用它。有人可以帮助我如何按照手册所示进行操作吗?这是我的简单客户端:class GenericAsyncAPIConsumerWith(GenericAsyncAPIConsumer):    async def websocket_connect(self, message):        # Super Save        await super().websocket_connect(message)        # Initialized operation        await self.model_activity.subscribe()class UserConsumer(ObserverModelInstanceMixin, GenericAsyncAPIConsumerWith):    queryset = Course.objects.order_by("-start_time")    serializer_class = UserSerializer    # permission_classes = [IsAuthenticated]@model_observer(User)async def model_activity(self, message, observer=None, **kwargs):    # send activity to your frontend    await self.send_json(message)  
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超5个赞

我觉得文档有点不清楚,这就是解决方案,也做了公关。


class ModelConsumerObserver(AsyncAPIConsumer):

    async def accept(self, **kwargs):

        await super().accept()

        await self.model_change.subscribe()

    

    @model_observer(models.Test)

    async def model_change(self, message, **kwargs):

        await self.send_json(message)

从那时起,websocket 会将模型更改推送给客户端


查看完整回答
反对 回复 2023-08-08
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

我觉得文档有点不清楚,这就是解决方案,也做了公关。


class ModelConsumerObserver(AsyncAPIConsumer):

    async def accept(self, **kwargs):

        await super().accept()

        await self.model_change.subscribe()

    

    @model_observer(models.Test)

    async def model_change(self, message, **kwargs):

        await self.send_json(message)

从那时起,websocket 会将模型更改推送给客户端


查看完整回答
反对 回复 2023-08-08
  • 2 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信