我有一个带有Post模型的标准Django博客,只有在模型上我为approvers添加了一个ManyToManyField,其思想是后端将帖子传递给2个或更多的审批者,以便在其发布之前确认内容。
class Post(models.Model):
author = models.ForeignKey(
get_user_model(), null=True, on_delete=models.SET_NULL)
title = models.CharField(max_length=30)
content = models.CharField(max_length=30)
approvers = models.ManyToManyField(Approvers)我可能会学习一些东西,比如django-fsm,为Post模型创建一个有限状态机,以控制它是否是草案/批准/发布,但我希望能够更改approvers字段,以便用户可以动态地更改审批者(用户)的数量和顺序。
做这件事最好的方法是什么?我想我可以尝试将approvers字段更改为JSONField,这样用户就可以添加/删除/更改审批者的顺序,然后在前端处理解释,并编写一些函数来与django-fsm接口,但这似乎将事情混为一谈。我错过了一条更简单的路吗?
发布于 2019-08-29 02:42:34
为什么不再做一个这样的模型呢?
class PostApprover(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='approvers')
user = models.ForeignKey(Approver, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)要访问post(例如id 5)被批准的顺序(降序),.you可以这样做
post = Post.objects.get(id=5)
post.approvers.order_by('-created_at')您可以更改created_at的值以更改订单。或者,也可以创建一个整数字段来确定您的顺序。
https://stackoverflow.com/questions/57701413
复制相似问题