Django_注册全局消息
需求:
对于登录用户,无论他在哪个页面,我都需要给他全局发送一个消息提示,Django中request就是一个全局变量
那,如何做?
- 在models 中urser表,继承user的表类中写上一个函数,用于统计或者查询出要通知的消息类,然后通过request.user.方法获得所需要的值
class UserProfile(AbstractUser):
nick_name = models.CharField(max_length=50, verbose_name=u'昵称', default=u'')
birthday = models.DateField(verbose_name=u'生日', null=True, blank=True)
gender = models.CharField(max_length=6, choices=(('male', u'男'), ('female', u'女')), default='female')
address = models.CharField(max_length=100, default=u'', verbose_name=u'用户地址')
mobile = models.CharField(max_length=11, null=True, blank=True)
# 图片存储为图片路径
image = models.ImageField(upload_to='image/%Y/%m', default=u'image/default.png')
add_time = models.DateTimeField(default=datetime.now, verbose_name=u'添加时间') class Meta:
verbose_name = u'用户信息'
verbose_name_plural = verbose_name def get_message_nums(self):
"""获取所有未读消息条数"""
from operation.models import UserMessage
return UserMessage.objects.filter(user=self.id, has_read=0).count() - 在template中,通过request.user.get_message_nums方法获取值,所有的页面都可以获取request中值,因为在每个view都需要接收request参数和传递request参数
<a href="{% url 'user:message' %}" {% if not request.user.get_message_nums %} style="display: none" {% endif %} >
<div class="msg-num"><span id="MsgNum"> {{ request.user.get_message_nums }} </span></div>
</a>
Django_注册全局消息的更多相关文章
- 激活前一个程序(注册全局消息,使用Mutex探测,如果已经占用就广播消息通知第一个程序,然后第一个程序做出响应)
unit MultInst; interface const MI_QUERYWINDOWHANDLE = ; MI_RESPONDWINDOWHANDLE = ; MI_ERROR_NONE = ; ...
- vue 注册全局组件
注册全局组件有啥好处呢? 提高代码的复用性:哪里需要写哪里,贼方便,就写一个标签:减少代码量:可以再配合slot一起使用,咦~~,舒服 为了让整个项目的可读性,我创建一个文件统一存放全局组件 1.创建 ...
- vue 中注册全局组件
1 全局注册组件 建一个 js 文件, 注册全局组件, 并且暴露出去 然后再在 main.js 中引入 在页面就可以直接使用了 2 全局注册过滤器 建立文件, 包含所有过滤器方法 ...
- vue 自动注册全局组件
vue 自动注册全局组件 vue 注册全局组件的方式 const plugins = { install(Vue) { const requireComponent = require.context ...
- 安装全局消息钩子实现dll窗体程序注入
说明{ 通过设置全局消息钩子来实现dll注入,然后窗体有相关消息请求的时候就会自动加载注入dll, 然后在入口处做处理就可以了.注入方式简单很多,比代码注入和lsp等注入都简单,就不解释了. ...
- [WinAPI] API 4 [注册][创建][消息][第一个框架类窗口]
首先注册了窗口类,然后创建了一个窗口,创建窗口时指定的窗口的属性和窗口消息的处理函数.函数消息的处理函数大多调用系统默认函数来处理. #include<windows.h> /*全局变量* ...
- WPF 注册全局快捷键
.NET技术交流群 199281001 .欢迎加入. using System; using System.Collections.Generic; using System.Linq; using ...
- Vue 自定义全局消息框组件
消息弹框组件,默认3秒后自动关闭,可设置info/success/warning/error类型 效果图: 文件目录: Message.vue <template> <transit ...
- Vue自动化注册全局组件脚本
今天有一个idea,vue一些组件,可能会全局都用到,我觉得在main.js写 Vue.component(name, instance) 然后很命令式,写着也不好看,想着能够有一个函数可以指定加载比 ...
随机推荐
- asp.net core 2.0 查缺补漏
asp.net core 2.0 一些有用有趣的设置. 面向(targeting)不同的.net版本: 打开asp.net core 2.0的项目文件: xxx.csproj, 这部分: <Pr ...
- bootstrapru软件官网
一 bootstrap:http://v3.bootcss.com/ 二 起步:http://v3.bootcss.com/getting-started/ 三 全局css样式:htt ...
- 小程序之ScrollView细节坑
Scroll-View 相信大家在使用scroll-view的时候遇到不少问题,网上也有些答案,但是类似我这个问题,貌似没搜索到答案~~ 今天媳妇问我,为什么bindscrolltolower突然不生 ...
- unisound_asr 云知声 语音识别 python版接口
抽空,实现了一份云知声 语音转写的python版本. 使用python通过调用动态库实现. 云知声官网: http://dev.hivoice.cn/sdk_download/schema_sdk.j ...
- K:二叉树
相关介绍: 二叉树是一种特殊的树,它的每个节点最多只有两棵子树,并且这两棵子树也是二叉树.由于二叉树中的两棵子树有左右之分,为此,二叉树是有序树. 二叉树的定义: 二叉树是由n(n>=0)个 ...
- 《深入解剖Yii2框架》前言
写代码需要站在巨人的肩膀上,将主要精力集中在自己所需要实现的业务上面,避免反复搭建基础服务,重复造轮子.PHP框架就是这样一些巨人的"肩膀",使得我们"站"得更 ...
- python的while循环
age_of_laochuanzhang = 56 conut = 0 while True: if conut == 3: print("输入次数上限") break age = ...
- 论python3下“多态”与“继承”中坑
1.背景: 近日切换到python3后,发现python3在多态处理上,有一些比较有意思的情况,特别记载,供大家参考... 以廖老师的python3教程中的animal 和dog的继承一节的代码做例子 ...
- [翻译]QT core wallet manual 狗狗币核心钱包使用教程
译注:比特币没赶上可以玩狗狗币啊,水电厂包不起可以用CPU挖啊.为了顺应时代潮流,了解一下区(fa)块(heng)链(cai)和加密货币技术,准备从研究狗狗币开始.网上找了一圈没有看到很好的入门级教程 ...
- CSS清除浮动的几种方式
浮动对页面的影响: 如果一个父盒子中有一个子盒子,并且父盒子没有设置高,子盒子在父盒子中进行了浮动,那么将来父盒子的高度为0.由于父盒子的高度为0, 下面的元素会自动补位,所以这个时候要进行浮动的清除 ...