如何在 django 中获得特定任务的批准
Posted
技术标签:
【中文标题】如何在 django 中获得特定任务的批准【英文标题】:How to get approval for a particular task in django 【发布时间】:2020-11-12 02:13:32 【问题描述】:我正在创建任务,我需要有一个用于批准的 URL。在这种情况下,创建任务实例的人可以请求其他用户(不一定是管理员)批准某些更改。这些批准请求将以表格的形式显示在批准者的仪表板上,他可以在其中批准/拒绝它们。 这是我的代码:
models.py:
class Approvals(models.Model):
task = models.ForeignKey(Task_category, on_delete=models.CASCADE)
requester = models.ForeignKey(User, related_name='Requester', on_delete=models.CASCADE)
priority = models.CharField(max_length=50)
approver = models.ForeignKey(User,related_name='Approver', on_delete=models.CASCADE)
description = models.CharField(max_length=400)
created_at = models.DateTimeField(auto_now_add=True)
due_date = models.DateField(null=True,blank=True)
approved = models.BooleanField(default=False)
views.py:
class PendingApprovals(viewsets.ModelViewSet):
http_method_names = ["get","update"]
queryset = Approvals.objects.all()
serializer_class = ApprovalSerializer
to_approved = Approvals.objects.filter(approver=request.user,approved='False')
我能够获得给定用户必须批准的所有任务的列表,但我不知道如何批准它们,即如何更改其布尔字段标签。 任何帮助将不胜感激。 TIA。
【问题讨论】:
【参考方案1】:您可以随时向您的模型添加一个方法,以便您可以通过 Approvals.set_approval() 访问它并切换它的当前批准状态。
class Approvals(models.Model):
task = models.ForeignKey(Task_category, on_delete=models.CASCADE)
requester = models.ForeignKey(User, related_name='Requester', on_delete=models.CASCADE)
priority = models.CharField(max_length=50)
approver = models.ForeignKey(User,related_name='Approver', on_delete=models.CASCADE)
description = models.CharField(max_length=400)
created_at = models.DateTimeField(auto_now_add=True)
due_date = models.DateField(null=True,blank=True)
approved = models.BooleanField(default=False)
def set_approval(self):
self.approved = not self.approved
【讨论】:
您能否详细说明它将如何提供帮助以上是关于如何在 django 中获得特定任务的批准的主要内容,如果未能解决你的问题,请参考以下文章
如何在应用程序获得批准之前测试 Facebook 集成(检索用户的好友列表)?
如何在 facebook 上获得 user_photo 权限应用程序批准?