首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django实战-Signals 信号量

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

django的signal结合contenttypes可以实现好友最新动态,新鲜事,消息通知等功能。这个功能在用户发生某个动作的时候将其记录下来或者附加某些操作,比如通知好友。要实现这种功能可以在动作发生的代码里实现,也可以通过数据库触发器等实现,但在django中,可以使用signals。

记录每个操作,同时还能追踪到这个操作的具体动作:

用信号机制,监听信号,实现对信号的响应函数,在响应函数中记录发生的动作。

为了能追踪到操作的具体动作,必须从这张表中得到相应操作的model,这就得用ContentType。

在新鲜事这个功能上,使用GenericRelation来产生一个特殊的外键,它不像models.ForeignKey那样,必须指定一个Model来作为它指向的对象,GenericRelation可以指向任何Model对象。

只要model中有object的保存操作,都将执行post_post_save函数,可以在这个接受函数中实现通知好友等功能。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191016A002CK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券