如何在 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 权限应用程序批准?

git p4 如何在搁置的 cl 获得批准后提交 cl

我的 iOS 应用程序已获得批准但尚未发布。如何从团队或其他 Apple ID 中释放?

如何限制将特定分支合并到 Gitlab 中的其他分支?

我如何显示特定登录用户的特定页面django