1234567891011121314151617181920212223242526272829303132333435 |
- from django.shortcuts import render, redirect
- from django.views import View
- from django.views.generic import ListView
- from django.contrib.auth.mixins import LoginRequiredMixin
- from article.models import ArticlePost
- class CommentNoticeListView(LoginRequiredMixin, ListView):
- # 通知列表
- # 上下文的名称
- context_object_name = 'notices'
- # 模板位置
- template_name = 'notice/list.html'
- # 登录重定向
- login_url = '/user/login/'
- # 未读通知的查询集
- def get_queryset(self):
- return self.request.user.notifications.unread()
- class CommentNoticeUpdateView(View):
- # 更新通知状态
- # 处理get请求
- def get(self, request):
- # 获取未读消息
- notice_id = request.GET.get('notice_id')
- # 更新单条通知
- if notice_id:
- article = ArticlePost.objects.get(id=request.GET.get('article_id'))
- request.user.notifications.get(id=notice_id).mark_as_read()
- return redirect(article)
- else:
- request.user.notifications.mark_all_as_read()
- return redirect('notice:list')
|