• Django_注册全局消息


    需求:

      对于登录用户,无论他在哪个页面,我都需要给他全局发送一个消息提示,Django中request就是一个全局变量

    那,如何做?

    1.  在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()
    2. 在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>
      

        

  • 相关阅读:
    ST表——————一失足成千古恨系列2
    五一清北学堂培训之图论
    最长上升子序列的教训———一失足成千古恨系列1
    五一清北学堂培训之Day 3之DP
    [bzoj1057][ZJOI2007]棋盘制作
    [bzoj1010][HNOI2008]玩具装箱TOY
    [bzoj2326][HNOI2011]数学作业
    如何使用矩阵乘法加速动态规划——以[SDOI2009]HH去散步为例
    [bzoj1060][zjoi2007]时态同步
    [bzoj1046][HAOI2007]上升序列
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/7462994.html
Copyright © 2020-2023  润新知