如何解决如何向 Django 中的另一个用户发送通知
当我创建一个任务并将其分配给另一个用户时,分配的用户将收到有人将您添加到任务的通知。分配的用户可以批准/拒绝任务。如果邀请被接受,该任务将对用户可见,否则将向作者返回拒绝邀请的通知。
这是我的models.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Project(models.Model):
author = models.ForeignKey(User,on_delete=models.CASCADE,related_name='project_author')
assigned_to = models.ForeignKey(User,related_name='assigned_to')
title = models.CharField(max_length=264,verbose_name="Title ",unique=True)
description = models.TextField(verbose_name="Description ")
files = models.FileField(upload_to='blog_images',verbose_name="Image",blank=True)
publish_date = models.DateTimeField(auto_now_add=True)
update_date = models.DateTimeField(auto_now=True)
class Meta:
ordering = ['-publish_date',]
def __str__(self):
return self.title
视图.py
class CreateProject(LoginRequiredMixin,generic.CreateView):
model = Project
template_name = 'ProjectApp/create_project.html'
fields = ('assigned_to','title','description',)
def form_valid(self,form):
project = form.save(commit=False)
project.author = self.request.user
project.save()
return HttpResponseRedirect(reverse('ProjectApp:dashboard'))
解决方法
什么样的通知?想存放在哪里?最快的方法是在项目中添加一些状态字段,可以有“邀请、接受、拒绝”等状态,然后如果被邀请,则显示给用户并添加接受/拒绝选项。
在这种情况下,assigned_to 和 status 字段之间的关系将模拟您可以在某处显示的通知,如果想要更复杂,请创建一个单独的通知模型来存储某人被邀请和接受/拒绝的次数。
如果想通过邮件/短信/设备推送通知用户,可以检查一些可以实现的第三部分库。
,您可以添加状态字段来跟踪项目状态。例如:
status = models.CharField(max_length=1) # status of the request: pending,denied,accepted
分配的人员可以查看分配给他的处于“待处理”状态的项目列表。接受请求后,您可以将状态更新为“已接受”。
或者创建一个新班级,以防您想在有人接受工作之前尝试分配给多个人
class ProjectRequest(models.Model)
project = models.ForeignKey(Project,null=False)
assigned_to = models.ForeignKey(User,null=False)
status = models.CharField(max_length=1) # status of the request: pending,accepted
指定人员可以查看请求列表并采取行动。接受请求后,您可以将 ProjectRequest 中的状态和项目中的assigned_to 更新给此人。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。