gpt4 book ai didi

python - 在 Django Admin 中实现工作流程 - Django

转载 作者:太空宇宙 更新时间:2023-11-03 19:36:17 37 4
gpt4 key购买 nike

我有一个很好的管理面板设置,以便用户可以管理网站内的数据。

问题是我需要实现一个工作流程这样保存的模型就可以在各个阶段获得批准,然后最终发布。

<小时/>

由于所讨论的模型只是一个,我考虑添加一个 bool “approved_for_publishing”字段和一个“approved_by”manytomany 字段。

障碍是将其集成到管理面板中。

如果有人对这个主题有一些意见,那就太棒了。 =)

最佳答案

我很早就完成了类似的功能。这是您需要做的:创建一个批准状态模型,并具有不同的批准变体,即每个模型对象代表不同的批准阶段。此外,您还必须有一个 StatusHistory 模型,它反射(reflect)您的文章(例如)的当前状态。

class Article(models.Model)
title=models.CharField(max_length=32)
body=models.TextField()

class ApprovalStatus(models.Model):
name=models.CharField(max_length=32)
alias=models.CharField(max_length=32,pk=True)

class StatusHistory(models.Model):
status=models.ForeignKey(ApprovalStatus)
article=models.ForeignKey(Article)
current=models.BooleanField(default=True)

因此,当您在管理员中更改文章的状态时,会创建一个新的 StatusHistory 对象,并为旧对象提供 current=False 变量。这种方法看起来有点笨重,但是当您实现它时,您所需要的一切很容易陷入 ORM:状态历史记录只是所有对象的列表,对工作流的更改仅涉及创建新的审批状态和更改硬编码的状态流程例程

关于python - 在 Django Admin 中实现工作流程 - Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3406049/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com